【问题标题】:php not returning any result to javascript ajax objectphp没有向javascript ajax对象返回任何结果
【发布时间】:2014-05-12 12:34:39
【问题描述】:

我正在尝试使用 ajax,我以前使用过它,从我以前的 html 文件中复制了代码并更改了发送的值,php 文件来处理代码,我正在使用 POST 方法。但是,php 脚本不会向 html 页面返回任何内容。我已经检查了所有我能做的,所以我现在在这里。 函数看(){ var x = document.getElementsByTagName('option')[document.getElementById("region").selectedIndex].value; var ajaxRequest; // 使 Ajax 成为可能的变量!

 try{
   // Opera 8.0+, Firefox, Safari
   ajaxRequest = new XMLHttpRequest();
 }catch (e){
   // Internet Explorer Browsers
   try{
  ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP");
   }catch (e) {
      try{
     ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");
  }catch (e){
     // Something went wrong
     alert("Your browser broke!");
     return false;
  }
  }
}
   // Create a function that will receive data 
 // sent from the server and will update
 // modal section in the same page.
 ajaxRequest.onreadystatechange = function(){
   if(ajaxRequest.readyState == 4){
      var ajaxDisplay = document.getElementById("accordion");
  ajaxDisplay.innerHTML = ajaxRequest.responseText;
}
}
   // Now get the value from user and pass it to
 // server script.
 ajaxRequest.open("POST", "search.php", true);
 ajaxRequest.setRequestHeader("Content-type","application/x-www-form-urlencoded");
 alert(x);
 ajaxRequest.send("region=" + x);

}

php代码很简单

<?php
echo "The world is blue.";
?>

然而,它不会向所选的 div 返回任何内容。

【问题讨论】:

  • 首先,我建议使用 jQuery 之类的框架,它使用 AJAX 让事情变得更容易。其次,你确定你从 PHP 中得到结果吗?
  • 这就是问题所在,我没有从 php 得到任何结果。我有另一个可以正常工作的应用程序,但是,这个应用程序没有返回任何内容到 id 为“accordion”的 div。
  • @Michael You php 是原始的,必须工作。尝试为您的 javascript 代码使用 firebug。

标签: javascript php ajax


【解决方案1】:

您可能没有发布足够的信息让我们回答您的问题。但是,我承认您可能不确定首先需要问什么问题。

首先,我必须同意@cgf。 jQuery或类似的东西会让这更容易。

但是让我们专注于手头的问题。我们需要知道幕后发生了什么。

最好的方法是使用开发者工具栏,例如 firebug。 Chrome 内置了一个。

所以,加载 chrome 并点击 F12。这应该会在窗口底部显示一个非常忙碌的窗格。选择 Network 选项卡,然后请求您的页面/触发您的 javascript。您在网络选项卡中得到什么输出?主要是,在状态下你得到 200、500(服务器错误)还是 404(未找到)?用你看到/得到的更新你的问题。

我希望这应该为您指明正确的方向。

【讨论】:

  • 当我触发 javascript 函数时,我在状态列中得到 200 OK,但是,没有任何内容返回到 div。而且,如果我可以添加,没有信息丢失,我有一个 div 的 id 为手风琴,应该插入 php 的结果。
  • @Michael,所以你尝试过类似alert(ajaxResults) 的方法吗?基本上是检查你是否只是没有在 HTML 中正确显示它,或者你没有从 PHP 脚本中得到任何东西?
  • 是的,我已经这样做了,php 没有返回任何内容。
  • 那么,当您直接通过浏览器检索 php 页面时,您会得到什么?另外,您如何使用 javascript 加载页面?鉴于您使用的是相对路径 (ajaxRequest.open("POST", "search.php", true)),您需要通过 localhost(或您的 php 文件所在的任何位置)使用 javascript 请求页面
  • 所有文件都在我本地主机的同一个文件夹中。没有什么不寻常的。单击一个搜索按钮,然后 onclick,调用 look() 函数,它提醒我在传递值之前显示该值,然后 php 不返回任何内容,如果它甚至首先被调用。
猜你喜欢
  • 2015-06-12
  • 1970-01-01
  • 2012-10-25
  • 2013-04-01
  • 1970-01-01
  • 1970-01-01
  • 2020-07-02
  • 2015-10-17
相关资源
最近更新 更多