2010-06-15 6 views
3

다른 질문이 있습니다. XMLhttpRequests가 나를 기다리고 있습니다. 모든 것이 데이터베이스에 저장되었지만이 데이터를 사용하여 페이지로드 또는 다시로드시 페이지를 업데이트해야합니다. XHR은 PHP 스크립트를 트리거하는 JavaScript 파일에서 트리거됩니다. PHP- 스크립트 액세스 MySQL 데이터베이스. 하지만 가져온 레코드를 페이지 업데이트 용 자바 스크립트로 다시 가져 오는 방법은 무엇입니까? 나는 그것을 이해할 수 없다.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 코드가 필요합니다. 일반적으로 자바 스크립트로 반환되는 객체를 사용할 때 JSON은 좋은 형식입니다. json_encode을 확인하십시오.

js에서 응답을 받고 어떤 방식으로 페이지를 업데이트해야합니다. 현재, 당신은 그것을 다시 돌려주고 있습니다.

몇 가지 아약스 튜토리얼을 살펴보고 jQuery과 같은 프레임 워크를 사용하는 것이 좋습니다. 근본적인 오해가 있기 때문에이 주제에 대해 약간의 독서를하고 싶을 수도 있습니다.

7

PHP 스크립트는 JavaScript에 return을주지 않습니다. 데이터가 echo이어야합니다 (예 : json_encode).

실제로 어떤 종류의 아약스라도 수행하는 경우 ajax library을 사용하면 훨씬 쉽게 생활 할 수 있습니다.

+0

thx. 예 echo와 json_encode가 작동했습니다. – user366121

2

문제는 단지 수익 문 앞에이 추가 시도, 시간에 존재하지 않는, xmlhttp.responseText입니다 :

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

는 기본적으로 사용자가 데이터를 사용할 수있을 때까지 기다릴 필요가, 그것을 만들기 위해 시간이 걸립니다 HTTP 요청 및 응답 받기.

+0

oh 그리고 @skilldrick이 PHP 에코를 가져 오거나 데이터를 인쇄해야한다고 말했습니다. – Tom