2014-01-25 52 views
0

我正在学习ajax并做一些练习。我面临一个问题。这是我的代码。Ajax调用returnign [对象HTMLInputElement]

<input class="category" id="design" type="button" value="Design" onclick="loadXMLDoc(design)" /> 

阿贾克斯:

function loadXMLDoc(name) 
{ 
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) 
    { 

    var array = xmlhttp.responseText; 
    alert(array); 


    } 
    } 
    xmlhttp.open("GET","server.php?cat="+name,true); 
    xmlhttp.send(); 
} 

server.php:

if(isset($_GET['cat'])) 
{ 
    $cat = $_GET['cat']; 
    echo $cat; 


} 

现在,当我点击按钮,则alter给我[对象HTMLInputElement]当我期望得到“设计”。它有什么不对?

回答

1

它有什么问题吗?

你有一个传递给函数:

onclick="loadXMLDoc('design')" 

目前要传递的变量design。由于您有一个ID为“design”的元素,因此此变量恰好指向该元素。然后,当您尝试将元素发送到服务器时,它将转换为字符串。 JavaScript中input DOM元素的默认字符串表示形式为"[object HTMLInputElement]"

+0

是啊,这是正确的......刚才检查it..Thank你... –

+0

你要传递的输入字段的值还是真的字面字符串'“设计“'? –

+0

非常感谢您的解释..真正感谢... –

0

试试这个:

onclick="loadXMLDoc(this.value)" 
相关问题