Запрос XMLHttpRequest> PHP> Запрос XMLHttpRequest


У меня есть еще один вопрос. XMLHttpRequests преследуют меня. Теперь все есть в базе данных, но мне нужны эти данные, чтобы обновить мою страницу при загрузке или перезагрузке первой страницы. XHR запускается в файле JavaScript, который запускает PHP-скрипт. PHP-Скрипт доступа к базе данных MySQL. Но как мне вернуть извлеченные записи обратно в мой JavaScript для обновления страницы. Я не могу этого понять.

Первый мой синхронный запрос XMLHttpRequest:

function retrieveRowsDB()
{
  if (window.XMLHttpRequest)
  {// code for IE7+, Firefox, Chrome, Opera, Safari

     xmlhttp=new XMLHttpRequest();

  }
  else
  {// code for IE6, IE5
     xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }

  xmlhttp.open("GET","retrieveRowData.php", false);
  xmlhttp.send(null);

  return xmlhttp.responseText;
}

Затем мой PHP-скрипт:

<?php

 $con = mysql_connect("localhost","root","*************");
 if (!$con)
 {
   die('Could not connect: ' . mysql_error());
 }

 mysql_select_db("sadb", $con);

 $data="SELECT * FROM users ORDER BY rowdata ASC";

 if (!mysql_query($data,$con))
 {
  die('Error: ' . mysql_error());
 }
 else
 {
  $dbrecords = mysql_query($data,$con); 
 }

 $rowdata = mysql_fetch_array($dbrecords);

 return $rowdata;

        mysql_close($con);

?>

Чего мне здесь не хватает? У кого-нибудь есть зацепка?

Author: Skilldrick, 2010-06-15

3 answers

Пока в вашем коде не так много технически неправильных - вам просто нужно на самом деле что-то с ним сделать .

В вашем PHP-файле вместо return $rowdata; вам нужно каким-то образом вывести его. В настоящее время он просто отправляет пустой документ обратно в javascript, поэтому вам нужно будет echo вывести код. Обычно при использовании нескольких объектов, возвращаемых в javascript, JSON является хорошим форматом. Проверьте json_encode.

С другой стороны, в в js вам нужно будет принять ответ и каким-то образом обновить страницу. В настоящее время вы просто возвращаете его снова.

Я предлагаю вам пройти несколько учебных пособий по ajax и рассмотреть возможность использования такой структуры, как jQuery, чтобы выполнить тяжелую работу за вас. Возможно, вы также захотите немного почитать на эту тему, так как у вас есть некоторые фундаментальные заблуждения.

 4
Author: Jeriko, 2010-06-15 10:49:51

PHP-скрипты не return на JavaScript. Вы должны echo данные (закодированные каким-либо образом, напримерjson_encode).

Действительно, если вы занимаетесь каким-либо видом ajax, вы сделаете свою жизнь намного проще, используя библиотеку ajax .

 7
Author: Skilldrick, 2010-06-15 10:42:50

Проблема в xmlhttp.responseText, в то время ее не существовало, попробуйте добавить это непосредственно перед вашим оператором возврата:

xmlhttp.onreadystatechange = function() {
    if (xmlhttp.readyState === 4 && xmlhttp.status === 200) {
            doSomething(xmlhttp.responseText);
        }
    }
}

В основном вам нужно подождать, пока данные будут доступны, требуется время, чтобы сделать HTTP-запрос и получить ответ.

 2
Author: Tom, 2017-11-08 18:25:48