Есть таблица , где после заполнения полей и нажатии на кнопку "Добавить", должен срабатывать php - скрипт из table.php и записывать в массив значения $_GET. А оттуда, из массива, новыми значениями заполняется таблица. Т.е. нужно хранить значения этой таблице в массиве. Как лучше это реализовать? Наверное, можно с помощью увеличения на 1 последний ключ массива и запись на этот ключ значений из $_GET. Помогите правильно расписать. Только на чистом php, ,без явы и ajax. http://skrinshoter.ru/s/080419/xRHE0sPt Код (Text): <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Контроль замены ФН</title> </head> <body> <table border="3"> <tr> <td><h2>№п/п</h2></td> <td><h2>Торговая точка</h2></td> <td><h2>Заводской номер ККТ</h2></td> <td><h2>Дата замены по ОФД</h2></td> <td><h2>Дата истечения срока ФН</h2></td> </tr> <form action="table.php" method="get"> <tr> <td><input id="number" type="text" name="1"></td> <td><input id="tradeShop" type="text" name="2"></td> <td><input id="factoryNumber" type="text" name="3"></td> <td><input id="dateOFD" type="date" name="4"></td> <td><input id="dateFN" type="date" name="5"></td> <td><input type="submit" value="Добавить"></td> </tr> </form> </table> </body> </html>
Огромное спасибо, осталось только разобраться, что он делает. Что делает <form action="/76105/" После нажатия на кнопку говорит что не найдено. И второе, файл db просто без расширения/формата?
@Babka_Gadalka думаешь в массиве может быть null? Там может быть пустая строка, пробелы или так <script>alert('JS!')</script> И file() желательно с константами раз нет проверки строк.
Слушай, я сам ладу не дам) Что не так в этой строке? Появляется Warning: sprintf(): Too few arguments in C:\OSPanel\domains\fiscal\www\index.php on line 27
Код (Text): <?php error_reporting ( E_ALL ); if ( filter_input ( INPUT_SERVER, 'REQUEST_METHOD' ) === 'POST' ) { $input = filter_input_array ( INPUT_POST, [ 'number' => FILTER_DEFAULT, 'tradeShop' => FILTER_DEFAULT, 'factoryNumber' => FILTER_DEFAULT, 'dateOFD' => FILTER_DEFAULT, 'dateFN' => FILTER_DEFAULT, ] ); if ( !in_array ( null, $input, 1 ) ) { file_put_contents ( __DIR__ . DIRECTORY_SEPARATOR . 'db', implode ( '☺', $input ) . PHP_EOL, FILE_APPEND ); } } $str = ''; foreach ( file ( __DIR__ . DIRECTORY_SEPARATOR . 'db' ) AS $line ) { $a = explode ( '☺', $line ); $str .= sprintf ( '<tr><td><h2>%s</h2></td><td><h2>%s</h2></td><td><h2>%s</h2></td><td><h2>%s</h2></td><td><h2>%s</h2></td></tr>', ...$a ) . PHP_EOL; } ?> <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Контроль замены ФН</title> </head> <body> <table border="3"> <tr> <td><h2>№п/п</h2></td> <td><h2>Торговая точка</h2></td> <td><h2>Заводской номер ККТ</h2></td> <td><h2>Дата замены по ОФД</h2></td> <td><h2>Дата истечения срока ФН</h2></td> </tr> <?= $str ?> <form action="index.php" method="post"> <tr> <td><input id="number" type="text" name="number"></td> <td><input id="tradeShop" type="text" name="tradeShop"></td> <td><input id="factoryNumber" type="text" name="factoryNumber"></td> <td><input id="dateOFD" type="date" name="dateOFD"></td> <td><input id="dateFN" type="date" name="dateFN"></td> <td><input type="submit" value="Добавить"></td> </tr> </form> </table> </body> </html>
Да думаю, это дефолтно от меня лично идет проверка после filter_input_array --- Добавлено --- Нюансы были опущены, заполнитель вроде как один, так понимаю. --- Добавлено --- поддержка кода не осуществляется, после ее модифицирования. db в студию
Удали эту хрень, поменяй на db.txt PHP: if ( is_array($input) and !in_array ( '', $input ) ) { file_put_contents ( __DIR__ . DIRECTORY_SEPARATOR . 'db.txt', implode ( ',', $input ) . PHP_EOL, FILE_APPEND ); } } $str = ''; foreach ( file ( __DIR__ . DIRECTORY_SEPARATOR . 'db.txt', FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES ) AS $line ) { $a = explode ( ',', $line ); Хотя все равно говнокод )
@keren https://php.net/manual/ru/function.filter-input-array.php Возвращаемые значения какие ? и что ты в условие написал ? и explode с implode не стоит трогать 1 аргумент, ты же тронул... --- Добавлено --- от перемен мест... знаешь ? --- Добавлено --- @alex.evg.ostr удали все строки кроме 1,2 --- Добавлено --- мой дб PHP: 1☺1☺1☺☺ 1☺1☺1☺☺ ☺☺☺☺ ☺☺☺☺ ☺☺☺☺ ☺☺☺☺ ☺☺☺☺ 1231☺12312☺123123☺2019-04-02☺2019-04-24 ☺☺☺☺ ☺☺☺☺ 11 - пустая строка --- Добавлено --- один плюс из всего кода. @alex.evg.ostr замени foreach на PHP: foreach ( file ( __DIR__ . DIRECTORY_SEPARATOR . 'db', FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES ) AS $line )
Да, и это тоже обязательно в планах. Просто хотелось узнать как можно реализовать импорт и экспорт в файл.