Правила     Закладки     Карма    Календарь    Журналы    Помощь    Поиск    PDA    Чат   
        СМС-ки
   
Пейджер выключен!
 
Фильтр авторов:    показать 
  скрыть
  Ответ в темуСоздание новой темыСоздание опроса

> как удалить строку через чекбокс, как удалить строку через чекбокс
leonw  
 ۩  [x]    Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Старик
***

Профиль
Группа: Пользователь
Сообщений: 108
Пользователь №: 40712
На форуме: 1 год, 11 месяцев, 2 дня
Карма:




Здравствуйте! подскажите пожалуйста как удалить строку в файле, вернее как удалить любую строку я знаю, но здесь не могу сообразить:

главный файл
<table align="center" border="1" cellpadding="0" cellspacing="0" width="90%">
<
tr align="center" bgcolor="#5C6076">
<
td width="14%"><font color="#ffffff" size=-1><b>Имя</b></font></td>
<
td width="14%"><font color="#ffffff" size=-1><b>Страна</b></font></td>
<
td width="14%"><font color="#ffffff" size=-1><b>Телефон</b></font></td>
<
td width="14%"><font color="#ffffff" size=-1><b>Qiwi</b></font></td>
<
td width="14%"><font color="#ffffff" size=-1><b>E-mail</b></font></td>
<
td width="14%"><font color="#ffffff" size=-1><b>Номера лотереи</b></font></td>
<
td width="10%"><font color="#ffffff" size=-1><b>Дата</b></font></td>
<
td width="6%"><font color="#ffffff" size=-1><b>Delete</b></font></td>
</
tr>
<
tr align="center">
<?php
include 'show_message.php';
?>
</tr>
</
table>


файл с шаблоном
<?php
$filename = "../result/messages.dat";
$delitmer = "<|-|>";
$shablon = '
<tr>
<td width="10%" align="center" bgcolor="#ffffff"><font color="#000000" size=-1><b><u>%name%</u></b></font></td>
<td width="10%" align="center" bgcolor="#ffffff"><font color="#000000" size=-1><b><u>%country%</u></b></font></td>
<td width="10%" align="center" bgcolor="#ffffff"><font color="#000000" size=-1><b>%telf%</b></font></td>
<td width="10%" align="center" bgcolor="#ffffff"><font color="#000000" size=-1><b>%qiwi%</b></font></td>
<td width="10%" align="center" bgcolor="#ffffff"><font color="#000000" size=-1><b><a href="mailto:%email%">%email%</a></b></font></td>
<td width="10%" align="center" bgcolor="#ffffff"><font color="#000000" size=-1><b>%nomer%</b></font></td>
<td width="10%" align="center" bgcolor="#ffffff"><font color="#000000" size=-1><b>%date%</b></font></td>
<td width="10%" align="center" bgcolor="#ffffff"><input type="checkbox" name=del value="1" /></td>
</tr>
'
;
$data = @file($filename);
sort($data);
for(reset($data); $key = key($data); next($data)) {
echo "name[$key] = ".$data[$key]."\n";
}
foreach($data as $val)
{
list($name, $country, $telf, $city , $qiwi , $email, $nomer, $date) = explode($delitmer, trim($val));
$tmp_message = str_replace("%name%", $name, $shablon);
$tmp_message = str_replace("%country%", $country, $tmp_message);
$tmp_message = str_replace("%telf%", $telf, $tmp_message);
$tmp_message = str_replace("%city%", $city, $tmp_message);
$tmp_message = str_replace("%qiwi%", $qiwi, $tmp_message);
$tmp_message = str_replace("%email%", $email, $tmp_message);
$tmp_message = str_replace("%nomer%", $nomer, $tmp_message);
$tmp_message = str_replace("%date%", $date, $tmp_message);
echo $tmp_message;
}
?>


текстовый файл
Цитата

Иван Иванович<|-|>Россия<|-|>222-555-555<|-|>Сочи<|-|>555-555-555<|-|>mail@m ail.ru<|-|>22,23,28,29,34,35,40<|-|>09.02.2016
Петр Петрович<|-|>Россия<|-|>333-555-555<|-|>Сочи<|-|>333-555-555<|-|>mail@m ail.ru<|-|>22,23,28,29,34,35,40<|-|>09.02.2016
Соня Сонина<|-|>Россия<|-|>444-555-555<|-|>Сочи<|-|>4444-555-555<|-|>mail@ma il.ru<|-|>22,23,28,29,34,35,40<|-|>09.02.2016


т.е. нажал на чекс бокс и на каком и сколько нажал столько строк и удалил.
вот если нужно удаление
$filename = 'file.txt'; // файл
$delete = array(2); // номера строк, которые удаляем


$file = file($filename, FILE_IGNORE_NEW_LINES);
while(list($line, $data) = each($file))
{
if(in_array($line, $delete))
unset($file[$line]);
}
$file = array_filter($file);
file_put_contents($filename, implode("\r\n", $file), LOCK_EX);
unset($file);


// Читаем содержимое
$text = file_get_contents("file.txt");
// Переводим содержимое в видимую форму
$text = htmlspecialchars($text);
// Выводим содержимое файла
echo $text;
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Игорь_Vasinsky  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Лысый и злой
******

Профиль
Журнал
Группа: ★ЛжеЭксперт★
Завсегдатай форума
Сообщений: 25982
Пользователь №: 21350
На форуме: 6 лет, 8 месяцев, 21 день
Карма: 725

Не курю:
1 год, 2 месяца, 7 дней


считать файл в массив
найти по индексу нужную строку
удалить её из массива
записать массив в виде строки в файл.

используйте БД.


--------------------
Халявные ответы кончились.
Если нужен готовый код - готовьтесь заплатить.
Райкин тоже был артист

Возле дома был сарай
А когда всё хорошо
Можно просто покурить

user posted image
http://ufa102.xyz/
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
leonw  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Старик
***

Профиль
Группа: Пользователь
Сообщений: 108
Пользователь №: 40712
На форуме: 1 год, 11 месяцев, 2 дня
Карма:




к каждой строчки я прибавил ческбокс
<?php
echo "<form name=delte METHOD=post>";
$data_file = file("rules.txt");
for($i=0;$i<sizeof($data_file);$i++){
echo $data_file[$i]."<input type=checkbox name=$i>";
}
echo "<input type=submit name=send2 value=удалить>
</form>"
;
echo $data_file[$i];
?>
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Игорь_Vasinsky  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Лысый и злой
******

Профиль
Журнал
Группа: ★ЛжеЭксперт★
Завсегдатай форума
Сообщений: 25982
Пользователь №: 21350
На форуме: 6 лет, 8 месяцев, 21 день
Карма: 725

Не курю:
1 год, 2 месяца, 7 дней


молодец.


--------------------
Халявные ответы кончились.
Если нужен готовый код - готовьтесь заплатить.
Райкин тоже был артист

Возле дома был сарай
А когда всё хорошо
Можно просто покурить

user posted image
http://ufa102.xyz/
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
leonw  
 ۩     Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Старик
***

Профиль
Группа: Пользователь
Сообщений: 108
Пользователь №: 40712
На форуме: 1 год, 11 месяцев, 2 дня
Карма:




но я не могу вывести номер строки чтобы передать в аррай.
echo $data_file[$i];

эта строчка выдает пустоту
или выдает номер строки но только одной
<?php
if($_POST['submit'])
{
$name1 = substr(htmlspecialchars(trim($_POST['name1'])), 0, 100);
echo "$name1";

}
echo "
<form name=sender method=post onsubmit=return SendForm();>"
;

$data_file = file('rules.txt');
for($i=0;$i<sizeof($data_file);$i++)
{
echo $data_file[$i]."<input type=checkbox name=name1 value=$i >";
}
echo "
<input type=submit name=submit value=Отправить>
</form>"
;
//checked=checked
?>


Это сообщение отредактировал leonw - 10.02.2016 - 11:12
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Игорь_Vasinsky  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Лысый и злой
******

Профиль
Журнал
Группа: ★ЛжеЭксперт★
Завсегдатай форума
Сообщений: 25982
Пользователь №: 21350
На форуме: 6 лет, 8 месяцев, 21 день
Карма: 725

Не курю:
1 год, 2 месяца, 7 дней


$file = 'file.xtx';
$strings = file($file, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);

foreach($strings as $k=>$s){
echo $k.' : '.$s."<br/>";
}


--------------------
Халявные ответы кончились.
Если нужен готовый код - готовьтесь заплатить.
Райкин тоже был артист

Возле дома был сарай
А когда всё хорошо
Можно просто покурить

user posted image
http://ufa102.xyz/
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
leonw  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Старик
***

Профиль
Группа: Пользователь
Сообщений: 108
Пользователь №: 40712
На форуме: 1 год, 11 месяцев, 2 дня
Карма:




ничего не измениось
<?php
if($_POST['submit'])
{
$name1 = substr(htmlspecialchars(trim($_POST['name1'])), 0, 100);
echo "$name1";

}
echo "
<form name=sender method=post onsubmit=return SendForm();>"
;
//$data_file = file('rules.txt');
$strings = file('rules.txt', FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
foreach($strings as $k=>$s){
echo $k." <input type=checkbox name=name1 value=$k > ".$s."<br/>";
}
echo "
<input type=submit name=submit value=Отправить>
</form>"
;
echo $strings[$k];
?>
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
ИНСИ  
[x] Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



грех - смерть
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 2488
Пользователь №: 18040
На форуме: 7 лет, 5 месяцев, 23 дня
Карма: 77




leonw если ты не хранишь данные в БД, тогда используй json. Тебе будет проще оперировать данными в будущем. Как пример:

// Массив со всеми данными
$arr = [
// Ключ (ID, по которому сможешь оперировать данными)
1 => [
'name' => 'value',
'country' => 'value',
'telf' => 'value',
'qiwi' => 'value',
'email' => 'value',
'nomer' => 'value',
'date' => 'value'
],
// Ключ (ID, по которому сможешь оперировать данными)
2 => [
'name' => 'value',
'country' => 'value',
'telf' => 'value',
'qiwi' => 'value',
'email' => 'value',
'nomer' => 'value',
'date' => 'value'
]
];


// Сохраняем
file_put_contents('file.txt', json_encode($arr));

// Заново получаем данные
$fileArr = json_decode(file_get_contents('file.txt'), true);

// Проверяем наличие данных в массиве
if($fileArr) {

// Обходим циклом
foreach ($fileArr as $key => $data) {

// $key = Ключ (ID, по которому сможешь оперировать данными)
// $data = Массив с данными

}
}


PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
leonw  
 ۩  [x]    Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Старик
***

Профиль
Группа: Пользователь
Сообщений: 108
Пользователь №: 40712
На форуме: 1 год, 11 месяцев, 2 дня
Карма:




код удаляет только по одной строчки! а в аррай нет :(
если два или три чекса выбрано, как это передать?
<?php
$filename = 'rules.txt';
if($_POST['submit'])
{
$name1 = substr(htmlspecialchars(trim($_POST['name1'])), 0, 100);
$delete = array($name1); // номера строк, которые удаляем
$file = file($filename, FILE_IGNORE_NEW_LINES);
while(list($line, $data) = each($file))
{
if(in_array($line, $delete))
unset($file[$line]);
}
$file = array_filter($file);
file_put_contents($filename, implode("\r\n", $file), LOCK_EX);
unset($file);
}
else
{
echo "nichego ne vibtano";
}
echo "<form name=sender method=post onsubmit=return SendForm();>";
$strings = file($filename, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
foreach($strings as $k=>$s)
{
echo $k." <input type=checkbox name=name1 value=$k > ".$s."<br/>";
}
echo "<input type=submit name=submit value=Отправить></form>";
?>
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Guest  
Дата
Цитировать сообщение


Гость пожелал остаться неизвестным

Unregistered









$filename = 'rules.txt';
$strings = file($filename, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);

if(isset($_POST['delete']) && is_array($_POST['delete'])) {
foreach ($strings as $k=>$v) {
if (in_array($k, $_POST['delete'])) {
unset($strings[$k]);
}
}

file_put_contents($filename, implode("\r\n", $strings));
$strings = array_values($strings);
}

echo "<form name=sender method=post onsubmit=return SendForm();>";
foreach($strings as $k=>$s) {
echo $k." <input type=checkbox name=delete[] value=$k > ".$s."<br/>";
}
echo "<input type=submit name=submit value=Отправить></form>";
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
  Быстрый ответ
Информация о Госте
Введите Ваше имя
Кнопки кодов
Для вставки цитаты, выделите нужный текст и
НАЖМИТЕ СЮДА
Введите сообщение
Смайлики
:huh:  :o  ;) 
:P  :D  :lol: 
B)  :rolleyes:  <_< 
:)  :angry:  :( 
:unsure:  :blink:  :ph34r: 
     
Показать всё

Опции сообщения  Включить смайлики?
 Включить подпись?
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:

Опции темы Ответ в темуСоздание новой темыСоздание опроса