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


Sending and showing messages from one PHP script to another

我在页面(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 将消息传递到另一个页面

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

也请随时建议一个新标题,我不确定我的标题是否完全描述了我正在暴露的问题。

提前谢谢你。

编辑:根据要求,这是在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);
}

PHP不能以这种方式真正在你的DOM上运行。您正在使用Javascript来获取PHP脚本的结果。因此,下一步是将该结果放入DOM中的div中。你也可以用Javascript而不是PHP来做到这一点。您是否正在使用像JQuery或Mootools这样的Javascript库?如果是这样,这是一项非常简单的任务。