2010-06-15 3 views
3

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

Первый мой синхронные 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); 

?> 

Что я здесь отсутствует? Кто-нибудь понял?

ответ

4

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

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

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

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

7

Сценарии PHP не return - JavaScript. У вас есть echo данные (закодированные каким-то образом, например json_encode).

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

+0

thx. да, эхо и json_encode. – user366121

2

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

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

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

+0

ах, а как @skilldrick сказал, что вам нужно иметь эхо PHP или распечатать данные. – Tom