Я сделал форму поиска в html, и при вводе ФИО на экран должен отображаться номер строки, в которой находится это ФИО. Все данные(ФИО) записаны у меня в текстовом файле Вообщем, вот само условие задачи https://i.stack.imgur.com/fh3ia.png Код, который я написал на html <html> <head> <meta charset="UTF-8"> <title>Поиск по ФИО</title> </head> <body> <form action="prakt9.php" method="post"> <input required type="text" name="search"/> <input type="submit"/> </form> </body> </html> Код на php, который выводит всё содержимое файла txt на экран, а не то, что должно выполнятся в условии задачи <?php $search = $_POST['search']; $file = fopen("info.txt", "r+"); while (!feof($file)) { echo fgets($file)."<br>"; } fclose($file); ?> Конкретно не понимаю, что я должен написать, чтобы на экране появился номер строки, в которой находится ФИО которое я ввожу в форме(html)
file вместо fopen и ищешь с помощью array_search Если поиск ничего не находит он выдает false Вод документация на все это https://www.php.net/manual/ru/function.file.php https://www.php.net/manual/ru/function.array-search.php PHP: $search = $_POST['search']; $file = file("info.txt"); $key = array_search($search, $file); как разберетесь с этим уже посмотрите в сторону
Код (Text): function sendForm(){ $.ajax({ url: 'form.php', type: 'POST', data: { fio: $('form input').val(); }, success: function(response) { $('#result').html(response); } }); } // form.php $data = file('user.txt', FILE_IGNORE_NEW_LINES); if (in_array($_POST['fio'], $data)){ echo 'Yes'; } else { echo 'No'; } --- Добавлено --- PHP: function sendForm(){ $.ajax({ url: 'form.php', type: 'POST', data: { fio: $('form input').val(); }, success: function(response) { $('#result').html(response); } }); } // form.php $data = file('user.txt', FILE_IGNORE_NEW_LINES); if (in_array($_POST['fio'], $data)){ echo 'Yes'; } else { echo 'No'; }
@boss1 А нах тут ajax? его за это препод по голове не погладит. И там есть пунк в тз где написано про вывод нескольких совпадение. Садись, два)
PHP: <?php // если в наш фаил не передан пост запрос показываем форму // за счет инверсии перед isset if( !isset($_POST['search'])) { ?> <html> <head> <meta charset="UTF-8"> <title>Поиск по ФИО</title> </head> <body> <form action="index.php" method="post"> <input required type="text" name="search"/> <input type="submit"/> </form> </body> </html> <?php } else { $search = $_POST['search']; $file = file("info.txt"); print_r($file); // за счет print_r можно увидеть содержимое массива, он уже будет пронумерован // например будет такой вид // Array ( [0] => ФИО1 [1] => ФИО2 [2] => ФИО3 [3] => ФИО4) // обрати внимание, уже есть цифры с порядком //далее нам нужно найти совпадение в массиве с помощью array_search $key = array_search($search, $file); // если нет совпадение $key вернет false // наш print_r не показывает false, вместо нее он отобразит пустую строку // поэтому для отладки используем var_dump var_dump($key); // теперь тебе нужно вывести номер строки если результат не false // но так как массив начинает считать с нуля, тебе к результута нужно прибавить один // и далее разобраться как вывести несколько совпадении } и если ты в будущем когда будешь показывать преподу код, оставишь закомментированным отладку, это тебе будет плюс один бал. например так: PHP: $search = $_POST['search']; $file = file("info.txt"); //print_r($file); $key = array_search($search, $file); //var_dump($key);