2014-01-25 2 views
0

Я изучаю ajax и занимаюсь практикой. Я столкнулся с проблемой. Вот мой код.Ajax call returnign [объект HTMLInputElement]

<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; 


} 

Теперь, когда я нажимаю на кнопку, альтер дает мне [объект HTMLInputElement], когда я ожидал получить "дизайн". Что в этом плохого?

ответ

1

Что в этом плохого?

Вы должны пройти строки функции:

onclick="loadXMLDoc('design')" 

В настоящее время вы пропускание переменныхdesign. Поскольку у вас есть элемент с идентификатором «дизайн», эта переменная происходит со ссылкой на этот элемент. Затем, когда вы пытаетесь отправить элемент на сервер, он преобразуется в строку. Строковое представление по умолчанию для элемента DOM input в JavaScript составляет "[object HTMLInputElement]".

+0

Да, это верно ... Только что проверил it..Thank вы ... –

+0

Вы хотите передать значение поля ввода или действительно буквально строку '" дизайн «'? –

+0

Большое спасибо за объяснение. –

0

Попробуйте это:

onclick="loadXMLDoc(this.value)" 
Смежные вопросы