1

我在页面中有以下代码(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);
}
4

1 回答 1

1

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

于 2012-05-30T00:10:12.733 回答