2012-06-21 78 views
0

我是AJAX方法的新手。我想發佈一些相關信息是由一個PHP的頁面處理,把它page.php文件顯示不足消息的Ajax帖子

在我的HTML頁面,我已經把這個代碼:

<script type="text/javascript" charset="utf-8"> 
//I have put the function getXMLHttpRequest() on a separate js file 
function getXMLHttpRequest() { 
    var xhr = null; 

    if (window.XMLHttpRequest || window.ActiveXObject) { 
     if (window.ActiveXObject) { 
      try { 
       xhr = new ActiveXObject("Msxml2.XMLHTTP"); 
      } catch(e) { 
       xhr = new ActiveXObject("Microsoft.XMLHTTP"); 
      } 
     } else { 
      xhr = new XMLHttpRequest(); 
     } 
    } else { 
     alert("Votre navigateur ne supporte pas l'objet XMLHTTPRequest..."); 
     return null; 
    } 

    return xhr; 
} 

function request(callback) { 
    var xhr = getXMLHttpRequest(); 

    xhr.onreadystatechange = function() { 
     if (xhr.readyState == 4 && (xhr.status == 200 || xhr.status == 0)) { 
      callback(xhr.responseText); 
     } 
    }; 

    xhr.open("POST", "page.php", true); 
    xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); 
    xhr.send("name=proposition"); 
} 

function postData(Data) { 

    alert(Data); 

} 
</script> 

<button onclick="request(postData);">...</button> 

在page.php文件,我有一個方法

protected function comment(){ 
//some code processing the posted infos (that works fine)... 

//to debug, I have put a 
echo('Hello world'); 

} 

事實是我沒有得到任何「世界,你好」,但一個巨大的警告消息與所有顯示我的網頁代碼。

任何人有想法?

最佳, Newben

+0

考慮使用jQuery你AJAX,它的代碼更少,更容易;) – edwardmp

+0

嚴重我不要冒犯任何人,但我已經看到這樣的代碼與XMLHttpRequests像一百萬次,我不希望每個人都使用jquery,但我期望研究一個圖書館,會讓他們變得輕鬆。 – Gntem

回答

0

你在page.php文件定義一個函數,但永遠不會調用它。 並刪除受保護的關鍵字,因爲它沒有任何意義(你是不是做一個類)

嘗試

function comment(){ 
//some code processing the posted infos (that works fine)... 

//to debug, I have put a 
echo('Hello world'); 

} 

comment(); 
+0

事實上,要更清楚一點:page.php的結構是page.php?page ='mypage'&post ='post'。所以首先有一個指向mypage.php的方向,然後在mypage.php中有一個班級的實例。 __construct方法使用post變量來調用名爲comment()的類中的方法。這會讓你感覺到嗎? – Newben

+0

請發佈mypage.php的內容。看起來像一個不合邏輯的方式來做到這一點。我會將所有代碼放在單個文件中。 – edwardmp

+0

它看起來像你的php文件被解釋爲純文本,因此它顯示在警報中。你忘了在PHP頁面中添加PHP開始標籤(<?php) – edwardmp