2012-01-19 29 views
0

這裏是我的Ajax代碼:AJAX和PHP未定義指數

function send() 
{ 
    var xmlhttp; 
    if (window.XMLHttpRequest) 
     {// code for IE7+, Firefox, Chrome, Opera, Safari 
     xmlhttp=new XMLHttpRequest(); 
     } 
    else 
     {// code for IE6, IE5 
     xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); 
     } 

    xmlhttp.onreadystatechange=function() 
     { 
     if (xmlhttp.readyState==4 && xmlhttp.status==200) 
     { 
      alert(xmlhttp.responseText); 
     } 
     } 

    xmlhttp.open("POST","test.php",true); 
    xmlhttp.send('subject=' + document.getElementById("subject").value); 
} 

這裏是我的PHP代碼:

<?php 
$subject = $_POST['subject']; 
echo $subject; 
?> 

它說,在PHP代碼,不確定的指標線2的錯誤。 我不知道還有什麼可以做..所有的幫助將被附加,謝謝。

+0

一個明顯的評論,但你的表單元素肯定有id'subject'?我也會嘗試用'GET'來代替,值得一試! – martincarlin87

回答

0

檢查您的表單輸入名爲主題。你可能拼錯了它。

+0

不。我得到的主題的價值,測試它。 – user1104615

+0

如果'subject'在您的'$ _POST'中,您將不會收到關於未定義索引的通知。 – MetalFrog

1

這意味着$ _POST數組中沒有'subject'值。這意味着當向頁面發出請求時,不存在稱爲主題的post變量。一個簡單的方法來檢查這是使用:

if(isset($_POST['subject'])){ 
    $subject = $_POST['subject']; 
}else{ 
    $subject = "default"; 
} 

這是確保主題有一個值,不會導致任何頁面錯誤。確保您確定發送了一個名爲subject的POST變量(您可以在Chrome Developer工具或網絡請求面板中的Firebug中執行此操作)。

+0

明白了,但最新的問題是什麼?爲什麼它沒有得到主體的價值? – user1104615

+0

正如我所說,如果這是一個AJAX應用程序,然後檢查您的網絡面板的開發工具或螢火蟲,並查看請求數據,在標題中它應該顯示請求變量及其類型。檢查是否有POST變量正在發送,並且它具有您期望的值。 –

+0

螢火蟲在交: 源 受試者= dfgasdasd 螢火蟲響應: 通知:未定義指數:受試者在C:\瓦帕\ WWW \封郵件\ test.php的
? ?? – user1104615