Уважаемые коллеги! Задача стояла следующая: из некого текстового txt файла получить информацию и представить её в браузере в форме списка с возможностью выбора одного или нескольких значений. После выбора ряда пунктов и нажатия клавиши отправить программа должна скорректировать исходный текстовый txt файл, удалив из него отмеченные пользователем строки.
Ниже представлен мой код. Проблема заключается в том, что при преобразовании имён переменных (например в $_POST) интерпретатор добавляет вместо пробелов, точек и ещё ряда элементов знак подчеркивания «_» и тем самым мой код записывает с txt файл отличную от исходной информацию. Подскажите, пожалуйста, есть ли в PHP некий инструмент (например функция), позволяющий не добавлять нижние подчеркивания «_»
PHP:
<!DOCTYPE html> <html lang=»ru»> <head> <title>Создание списка строк из файла</title> <meta charset=»utf-8″> </head> <body> <?php // echo ‘<pre>’; // print_r($list_array); // echo ‘</pre>’; ?> <form method=’post’ action=’handler.php’> <?php echo «<input type=»checkbox» name=»$list_array[$i]»>»; echo «$list_array[$i]<br />»; }; echo «<input type=»submit» value=»Отправить»>»; ?> </form> </body> </html>Обработчик:
PHP:
<?php foreach ($_POST as $key=>$value) { // $key_mod = str_replace(array(«_», «.»), » «, $key); }; echo ‘<pre>’; echo ‘</pre>’; echo ‘<pre>’; echo ‘</pre>’; foreach ($result_array as $key=>$value) { }; } else { echo ‘Выберите хотя бы один вариант’; }; ?>
просто посмотрите print_r($_POST); и станет ясно что интерпретатор php тут не при чем….
не все можно и нужно использовать в качестве имен полей в форме…собирайте не имена а значения —
PHP:
Но ведь значения в форме «checkbox» это «on». Вроде такого key1 => on, key2 => on и тд
не обязательно, задайте их явно просто
HTML:
<input type=‘checkbox’ name=«name» value=«value»https://htmlbook.ru/samhtml5/formy/flazhki?ysclid=lnbisl16d7574251216
Отлично! Спасибо Вам большое!
Так и передавайте только номера строк
Код (Text):
<input type=»checkbox» name=»name[]» value=»234″
Добрый день!
Попробуйте сделать так:PHP:
<?php $fileName = ‘list.txt’; $fileNameBac = ‘list.bac’; { } $error = »; $del = false; { $error = ‘Выберите хотя бы одну строку’; else { foreach ($_POST[‘key’] as $i) $del = true; } } ?> <!DOCTYPE html> <html lang=»ru»> <head> <title>Создание списка строк и их удаление из файла</title> <meta charset=»utf-8″> </head> <body> <form method=’post’ action=»> <?php $return = » <input type=»submit» name=»return» value=»Вернуть удалённые строки»>»; { foreach($list_array as $i=>$line) echo «<input type=»checkbox» name=»key[]» value=»$i«> $line<br>»; echo «$error<br>»; echo «<input type=»submit» name=»send» value=»Удалить строки»>»; if($del) echo $return; } else { echo «В файле $fileName все строки удалены<br>»; echo $return; } ?> </form> </body> </html>Удачи!