调用并运行PHP脚本的AJAX

调用并运行PHP脚本的AJAX,php,javascript,ajax,Php,Javascript,Ajax,我的服务器上有一个正常工作的PHP脚本,还有一个包含JavaScript和AJAX的HTML页面,我想调用并运行PHP脚本。但是,AJAX responseText显示的是所有PHP代码,而不是运行它。我需要做什么才能只得到PHP的结果?我看到的其他例子使用了responseText,结果似乎很好,但对我来说不是这样: 谢谢 埃尔沙 我的AJAX代码如下……我的PHP工作正常,已经过测试: function ahah(url) { //document.ge

我的服务器上有一个正常工作的PHP脚本,还有一个包含JavaScript和AJAX的HTML页面,我想调用并运行PHP脚本。但是,AJAX responseText显示的是所有PHP代码,而不是运行它。我需要做什么才能只得到PHP的结果?我看到的其他例子使用了responseText,结果似乎很好,但对我来说不是这样:

谢谢

埃尔沙

我的AJAX代码如下……我的PHP工作正常,已经过测试:

    function ahah(url) {
               //document.getElementById(target).innerHTML = ' Fetching data...';
               if (window.XMLHttpRequest) {
                 req = new XMLHttpRequest();
               } else if (window.ActiveXObject) {
                 req = new ActiveXObject("Microsoft.XMLHTTP");
               }
               if (req != undefined) {
                 req.onreadystatechange = function() {ahahDone(url);};
                 req.open("GET", url, true);
                 req.send("");
               }
             }  

             function ahahDone(url) {
               if (req.readyState == 4) { // only if req is "loaded"
                 if (req.status == 200) { // only if "OK"
                  var div = document.createElement('DIV');
                  div.innerHTML = req.responseText;
                  document.getElementById('chicken_contentDiv').appendChild(div);
                 } else {
                   " <div> AHAH Error:\n"+ req.status + "\n" +req.statusText + "</div>";
                 }
               }
             }

             function load(name) {
              ahah(name);
              return false;
              }
<div> + load('./getFiles.php') + </div> //called in a div
好的,这是新代码:

//这里发生了一些事情,我认为这与这个问题无关

//This is where the AJAX/JQuery calls the php
var info = new OpenLayers.Control.WMSGetFeatureInfo({
                    url: 'http://localhost:8080/geoserver/wms',
                    title: 'Identify features by clicking',
                    queryVisible: true,
                    eventListeners: {
                        getfeatureinfo: function(event){              
                           map.addPopup( new OpenLayers.Popup.AnchoredBubble(
                                "chicken",
                                map.getLonLatFromPixel(event.xy),
                                null,
                                event.text + '<div> Hello Tibet :)</div>' + $('#chicken_contentDiv').load('http://localhost/mapScripts/getFiles.php'), //have also tried localhost:80, no diff

                                null,
                                true

                            ));

                        }

                     }
                });
                map.addControl(info);
                info.activate();

    });

如果响应包含实际的PHP代码,则PHP解释器不会对其进行处理。你在哪里运行这个?很明显,web服务器没有正确配置以处理PHP文件

编辑:

您的线路:

event.text + '<div> Hello Tibet :)</div>' + $('#chicken_contentDiv').load('http://localhost/mapScripts/getFiles.php'),
这是不正确的。。您不希望附加jQuery函数的结果。输出将始终是一个对象。您只需要运行该脚本,它将用chicken\u contentDiv的ID填充一个DIV。那真的是把细节放进去的合适人选吗


它应该在结束时,在您的var info声明关闭并完成之后。

在您的apache配置或.htaccess文件中添加这一行AddType application/x-httpd-php.html,这样html文件将被php解释器解析。

您是否缺少AHAHAHANAME,AHAHONE……。这种类型的ajax调用有点老派,为什么不使用类似jQuery的东西?@Shoban,是的,我还没有改变那些愚蠢的名字,从一个教程中了解到:pit似乎是你的web服务器没有正确配置来处理php文件。如果响应包含实际的php代码,那么php解释器就不会处理它。是的!我正在从我的服务器上的html文件运行它。嗯,我将研究如何配置我的服务器和jQuery。与我所做的相比,使用jQuery有什么优势吗???谢谢你有一两个问题。javascript可能工作正常,但web服务器没有运行PHP脚本。从.HTML文件调用它并不重要。把Ajax从等式中去掉,浏览到getFiles.php并查看源代码。。。看到代码了吗?那是你的问题。。一旦你解决了这个问题,你的javascript还能工作吗?如果不是,那就是问题2。jQuery使这类事情变得简单。$'加载“getFiles.php”;就这样,没有其他功能了。谢谢你的回复。我将+load'./getFiles.php'+替换为$'chicken\u contentDiv.load'./getFiles.php',现在我的弹出窗口是display[object object]…还有其他建议吗?顺便说一句,我是一个女人@elshae是的,这就是它的意思。@elshae我认为你的问题是因为港口。。。请看,但我仍然希望看到您正在运行的确切代码。这不会有帮助,因为他正在使用Ajax调用.php文件,而不是在.html文件中包含php代码。对不起,我误解了elshaes的评论,他说的是肯定的!我正在从我的服务器上的html文件运行它。