2014-04-22 105 views
0

我想發佈一個選定的單選按鈕的值,但PHP中的$ _POST變量被賦予'undefined',我需要更改以便$ _POST獲得正確的值?我想這可能是因爲我沒有使用URIencode,但是當我使用這個時,我的JavaScript甚至沒有得到這個元素。AJAX POST沒有收到正確的值

JAVASCRIPT

function rappoll(){ 
    var xmlHTTPreq; 
    var url = "poll.php"; 
    var params="name="+name; 
    var elements = document.getElementsByName("elements"); 
    var checkedButton = getName(elements); 

if (checkedButton) { 
    var name = checkedButton.value; 
} 

if (window.XMLHttpRequest) { 
    try { 
     xmlHTTPreq = new XMLHttpRequest(); 
    } catch(e) { 
     xmlHTTPreq = false; 
    } 
} else { 
    try{ 
     xmlHTTPreq = new ActiveXObject("Microsoft.XMLHTTP"); 
    }catch(e){ 
     xmlHTTPreq = false; 
    } 
} 

xmlHTTPreq.open("POST", url, true); 
xmlHTTPreq.onreadystatechange = function() 
{ 
    if(xmlHTTPreq.readyState == 4 && xmlHTTPreq.status == 200){ 
     document.getElementById('poll').innerHTML = xmlHTTPreq.responseText; 
    } 
} 
xmlHTTPreq.setRequestHeader("Content-type","application/x-www-form-urlencoded"); 
xmlHTTPreq.send(params); 

} 

function getName(group){ 
for (var i = 0; i < group.length; i++) { 
    var button = group[i]; 
    if (button.checked) { 
     return button; 
    } 
} 
return undefined; 

}

PHP

$name = $_POST['name']; 
+0

你怎麼知道你得到 '未定義'?如果這是你所有的PHP代碼,它不會迴應任何東西。 – putvande

+0

我使用了var_dump,但沒有看到發佈@putvande的任何一點 – user3453366

回答

3

您聲明,在這裏分配params

var params="name="+name; 

由於name不是高清現在params現在是"name=undefined"。請注意0​​是宣稱爲因爲變量吊裝,所以你不會看到undefined variable 'name'

一旦指定name你必須在指定params過,或改變這一行:

xmlHTTPreq.send(params); 

xmlHTTPreq.send("name=" + name);