我在页面中有以下代码(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的现成访问权。
我看过这篇文章:
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);
}
答案 0 :(得分:1)
PHP无法以这种方式真正对您的DOM进行操作。您正在使用Javascript来获取PHP脚本的结果。所以下一步是将结果放入DOM中的div中。您也可以使用Javascript而不是PHP来执行此操作。你在使用像JQuery或Mootools这样的Javascript库吗?如果是这样,这是一项非常简单的任务。