从一个PHP脚本发送和显示消息到另一个PHP脚本

时间:2012-05-29 23:42:34

标签: php javascript ajax

我在页面中有以下代码(index.php),它只由两个DIV组成,一个在左侧(#leftDIV),其中包含一个表单,另一个DIV(#messages)将接收错误消息和右侧的另一个DIV(#mapAJAX),其中包含一个PHP脚本,该脚本应该向#messages DIV发送错误消息。

<div id="leftDIV">
  <form method="post" onsubmit="return false;">
    ...
    Some code here
    ...
    <input type=button value="Cercar" onclick="search();"/>
    <input type=reset value="Esborrar" />
  </form>
  <div id="messages">&nbsp;</div>
</div>
<div id="mapAJAX"></div>

一旦提交了表单,就会调用Javascript函数,它会创建一个XMLHttpRequest对象来加载右侧的PHP脚本,这个想法是每次提交表单时只重新加载右侧的内容。在这个新脚本(map.php)中,我在数据库中进行搜索,并将结果加载到同一个右侧DIV内的地图中。

如果出现任何问题,我想在前面提到的#messages DIV中显示错误,但我不知道如何从map.php脚本将这些消息发送到该DIV。只搜索带有#messages id的任何DOM元素将不起作用,因为该脚本没有对左DIV的现成访问权。

我看过这篇文章:

PHP/Javascript passing message to another page

但是一旦生成了新消息,我不知道如何触发消息的显示。那我该怎么办?

也可以随意提出一个新标题,我不确定我是否完全描述了我所暴露的问题。

提前谢谢。

编辑:根据要求,这是在index.php文件中找到的AJAX代码。在search()对表单值进行了几次检查后调用此函数。它使用一个名为AJAX.js的文件来简化XMLHttpRequest的创建。

function loadMap(ciutat, tipusCuina){
  var div = document.getElementById("mapAJAX");
  var oXMLHttpRequest = createXMLHttpRequestObject();
  var url = "mapa.php?ciutat=" + ciutat + "&tipusCuina=" + tipusCuina;

  oXMLHttpRequest.open('GET', url);
  oXMLHttpRequest.onreadystatechange = function(){
    if(oXMLHttpRequest.readyState == 4){
      if(oXMLHttpRequest.status == 200){
        div.innerHTML = oXMLHttpRequest.responseText;
      }
      else{
        alert("Hi ha hagut un problema amb la recepcio del mapa.");
      }
    }
  }

  oXMLHttpRequest.send(null);
}

1 个答案:

答案 0 :(得分:1)

PHP无法以这种方式真正对您的DOM进行操作。您正在使用Javascript来获取PHP脚本的结果。所以下一步是将结果放入DOM中的div中。您也可以使用Javascript而不是PHP来执行此操作。你在使用像JQuery或Mootools这样的Javascript库吗?如果是这样,这是一项非常简单的任务。