@TechNOIR

PHP+AJAX. Как вывести результат поиска на той же странице?

Добрый день. Пытаюсь постигнуть Ajax..
Изначально был html с формой ввода и submit, которые вызывали script.php, в котором выполнялся поиск по БД и вывод результата.
Но захотел выводить всё на одной странице, с помощью Ajax. Пытаюсь настроить по примеру, но не получается чтото...
Направьте на путь истинный пожалуйста)

Код html+ajax:
spoiler
<html> 
  <head> 
    <meta  http-equiv="Content-Type" content="text/html;  charset=utf-8"> 
    <title>Поиск  контактов:</title> 
	
<script src="http://code.jquery.com/jquery-latest.js"></script>
<script>
function getdetails(){
    var name = $('#name').val();
    $.ajax({
        type: "POST",
        url: "scripts.php",
        data: {name:name}
    }).done(function( result )
        {
            $("#msg").html( " Address of Roll no " +name +" is "+result );
        });
}
</script>


  </head> 
  <p><body> 
    <h3>Детальный поиск контактов</h3> 
    <p>Вы можете искать по имени или фамилии</p> 
      <input  type="text" name="name" id="name"> 
      <input  type="button" name="submit" value="Search" id="submit" onClick = "getdetails()"/> 
<div id="msg"></div>

  </body> 
</html> 
</p>


Код script.php:
spoiler
<?php 
  if(isset($_POST['submit'])){ 
  if(isset($_GET['go'])){ 
  if(isset($_POST['name'])){ 
  $name=$_POST['name']; 
  // Подключиться к базе данных
  $db=mysql_connect  ("localhost", "root",  "####") or die ('Я не могу подключиться к базе данных, так как: ' . mysql_error()); 
  //- Выберите базу данных
  $mydb=mysql_select_db("flow"); 
  //- Запрос к таблице базы данных
  $sql="SELECT Bytes,Date FROM `flow_table`  WHERE src_ip='$name'"; 
  //- Запустить запрос к функции MySQL Query
  $result=mysql_query($sql) or die(mysql_error()); 
  //-Создание цикла 
  while($row=mysql_fetch_array($result)){ 
          $FirstName  =$row['Bytes']; 
          $LastName= $row['Date']; 
  //-Вывод результата в виде массива 
  echo "<ul>\n"; 
  echo "<li>" . "<a  href=\"search.php?id=$ID\">"   .$FirstName . " " . $LastName .  "</a></li>\n"; 
  echo "</ul>"; 
  } 
  } 
  else{ 
  echo  "<p> Пожалуйста, введите поисковый запрос </p>"; 
  } 
  } 
  } 
?>
  • Вопрос задан
  • 630 просмотров
Пригласить эксперта
Ответы на вопрос 2
OKyJIucT
@OKyJIucT
Sunshine reggae
Когда вы отправляете данные AJAX, в теле запроса нет $_POST['submit'] и $_GET['go'], есть только то, что вы ему передали в параметре data
data: {name:name}
то есть $_POST['name'], соответственно, у вас не доходит до запроса в базу.

И не забудьте экранировать то, что отправляете в базу. Юзеры могут искать с кавычками, например, и все сломается.
Ответ написан
Вам стоит в аякс запросе сериализовать данные и отправить на сервер, сервер этот запрос обрабатывает и отдает какой-то ответ, а уже ответ вы рендерите на той странице.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы