【问题标题】:XMLhttpRequest > PHP > XMLhttpRequestXMLhttpRequest > PHP > XMLhttpRequest
【发布时间】:2011-03-03 22:17:39
【问题描述】:

我还有一个问题。 XMLhttpRequests 困扰着我。一切现在都在数据库中,但我需要这些数据来更新我的页面加载或重新加载页面。 XHR 在触发 PHP 脚本的 JavaScript 文件中触发。 PHP-Script 访问 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);

?>

我在这里缺少什么?有人知道吗?

【问题讨论】:

    标签: php xmlhttprequest


    【解决方案1】:

    PHP 脚本不会 return 到 JavaScript。您必须echo 数据(以某种方式编码,例如json_encode)。

    说真的,如果你在做任何类型的 ajax,使用ajax library 会让你的生活变得更轻松。

    【讨论】:

      【解决方案2】:

      到目前为止,您的代码技术上并没有太多错误 - 你只需要真正一些事情。

      在您的 PHP 文件中,您需要以某种方式输出它,而不是 return $rowdata;。目前,它只是将一个空白文档发送回 javascript,因此您需要 echo 输出代码。通常,当使用多个对象返回到 javascript 时,JSON 是一种很好的格式。查看json_encode

      另一方面,在 js 中,您需要获取响应并以某种方式更新页面。目前,您只是再次退货。

      我建议您阅读一些 ajax 教程,并考虑使用诸如 jQuery 之类的框架来为您完成繁重的工作。您可能还想阅读有关此主题的一些内容,因为您有一些基本的误解。

      【讨论】:

        【解决方案3】:

        问题是xmlhttp.responseText,当时不存在,尝试在你的return语句之前添加这个:

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

        基本上你必须等到数据可用,发出HTTP请求并得到响应需要时间。

        【讨论】:

        • 哦,正如@skilldrick 所说,您需要让 PHP 回显或打印数据。
        猜你喜欢
        • 1970-01-01
        • 2012-04-24
        • 1970-01-01
        • 2022-01-17
        • 1970-01-01
        • 1970-01-01
        • 2012-01-23
        • 2011-07-19
        相关资源
        最近更新 更多