簡體   English   中英

AJAX調用並運行PHP腳本

[英]AJAX To Call and Run PHP Script

我的服務器上有一個工作正常的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

好的,這是新代碼:

//這里發生了一些事情,IMO認為與這個問題無關...

//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函數的結果。 輸出將始終是一個對象。 您只想運行該腳本,該腳本將填充ID為chicken_contentDiv的DIV。 (輸入細節真的是正確的DIV嗎?)

在結束並完成var info聲明之后,應該在最后。

在您的apache config或.htaccess文件中,添加以下行AddType application/x-httpd-php .html以便使用php解釋器解析html文件。

您是否在getFiles.php文件的開頭缺少<?php?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM