Ajax调用返回[object HTMLInputElement]

时间:2014-01-25 20:02:48

标签: php ajax

我正在学习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]。有什么问题?

2 个答案:

答案 0 :(得分:1)

  

它有什么问题?

您必须将字符串传递给函数:

onclick="loadXMLDoc('design')"

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

答案 1 :(得分:0)

试试这个:

onclick="loadXMLDoc(this.value)"