我正在学习ajax并做一些练习。我正面临一个问题。这是我的代码。
<input class="category" id="design" type="button" value="Design" onclick="loadXMLDoc(design)" />
的Ajax:
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]。有什么问题?
答案 0 :(得分:1)
它有什么问题?
您必须将字符串传递给函数:
onclick="loadXMLDoc('design')"
目前您正在传递变量 design
。由于您有一个ID为“design”的元素,因此该变量恰好引用该元素。然后,当您尝试将元素发送到服务器时,它将转换为字符串。 JavaScript中input
DOM元素的默认字符串表示形式为"[object HTMLInputElement]"
。
答案 1 :(得分:0)
试试这个:
onclick="loadXMLDoc(this.value)"