Nikitqa
Я сделал форму поиска в 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)
Artur_hopf
file вместо fopen и ищешь с помощью array_search
Если поиск ничего не находит он выдает false
Вод документация на все это
https://www.php.net/manual/ru/function.file.php
https://www.php.net/manual/ru/function.array-search.phpPHP:
$search = $_POST[‘search’];как разберетесь с этим уже посмотрите в сторону
boss1
Код (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:
Artur_hopf
@boss1 А нах тут ajax? его за это препод по голове не погладит. И там есть пунк в тз где написано про вывод нескольких совпадение.
Садись, два)
Nikitqa
ничего не понимаю, ни разу не пользовался array_search к сожалению
Artur_hopf
PHP:
<?php // если в наш фаил не передан пост запрос показываем форму // за счет инверсии перед isset { ?> <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’]; // за счет print_r можно увидеть содержимое массива, он уже будет пронумерован // например будет такой вид // Array ( [0] => ФИО1 [1] => ФИО2 [2] => ФИО3 [3] => ФИО4) // обрати внимание, уже есть цифры с порядком //далее нам нужно найти совпадение в массиве с помощью array_search // если нет совпадение $key вернет false // наш print_r не показывает false, вместо нее он отобразит пустую строку // поэтому для отладки используем var_dump // теперь тебе нужно вывести номер строки если результат не false // но так как массив начинает считать с нуля, тебе к результута нужно прибавить один // и далее разобраться как вывести несколько совпадении }и если ты в будущем когда будешь показывать преподу код, оставишь закомментированным отладку, это тебе будет плюс один бал.
например так:PHP:
$search = $_POST[‘search’]; //print_r($file); //var_dump($key);
mkramer
Ну русский же понимаешь, а тебе дали ссылку на доку
Nikitqa
Сложно, попробую, спасибо)