2014-04-22 4 views
0

Я хочу опубликовать значение выбранного переключателя, но переменная $ _POST в PHP получает назначенный «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 не Защиту ined params сейчас "name=undefined". Обратите внимание, что name - , объявленный из-за переменного подъема, поэтому вы не увидите undefined variable 'name'.

После назначения name вы должны переназначить params тоже или изменить эту строку:

xmlHTTPreq.send(params); 

к

xmlHTTPreq.send("name=" + name); 
Смежные вопросы