我在页面中有以下代码(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"> </div>
</div>
<div id="mapAJAX"></div>
提交表单后调用 Javascript 函数,它将创建一个 XMLHttpRequest 对象以在右侧加载 PHP 脚本,其想法是每次提交表单时仅重新加载右侧的内容。在这个新脚本 (map.php) 中,我在数据库中进行搜索,并将结果加载到同一个右侧 DIV 内的地图中。
如果出现任何问题,我想在我之前提到的#messages DIV 中显示错误,但我不知道如何将这些消息从 map.php 脚本发送到该 DIV。仅搜索带有#messages id 的任何 DOM 元素是行不通的,因为该脚本无法访问左侧 DIV。
我读过这篇文章:
但是我不知道如何触发消息的显示,一旦生成了新消息。那么我能做什么呢?
也可以随意提出一个新标题,我不确定我的标题是否完全描述了我所暴露的问题。
先感谢您。
编辑:根据要求,这里是 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);
}