2013-05-09 6 views
0

Я пытаюсь сделать вызов AJAX, это первый раз, когда я использую AJAX, мой код выглядит следующим образом:AJAX запрос GET не работает

$.get("validate.php", { 'userinput':'x'}, function(response) { 
    if(response.status) alert("Matches found"); 
    else alert("No matches"); 
}); 

vaidate.php:

<?php 
$user_input=$_GET['userinput']; 
//print_r($user_input); 
if(!is_null($user_input)) exit('{ "status": true }'); 
else exit('{ "status": false }'); 
?> 

Если я получаю доступ к моему validate.php, я получаю сообщение об ошибке «undefined index». Каков правильный способ сделать это?

+1

хорошо для одного, 'print_r ($ user_input)' необходимо закомментировать для JQuery, чтобы разобрать возвращение правильно, но в первую очередь необходимо зафиксировать неопределенную ошибку индекса –

+0

Синтаксис откусил - вы не нужен последний '}' – karthikr

+0

да, это было прокомментировано в коде, извините. это было только тогда, когда я проверил его –

ответ

1

РНР выглядит хорошо, как только вы закомментировать тестовый код:

<?php 
    $user_input=$_GET['userinput']; 
    //print_r($user_input); 
    if(!is_null($user_input)) exit('{ "status": true }'); 
    else exit('{ "status": false }'); 
?> 

вам нужно указать, что вы ожидаете JSON, самый простой способ будет использовать getJSON

$.getJSON("validate.php", { 'userinput':'x'}, function(response) { 
    if(response.status) alert("Matches found"); 
    else alert("No matches"); 
}); 

Другой альтернативы с JQuery является

$.get("validate.php", { 'userinput':'x'}, function(response) { 
    if(response.status) alert("Matches found"); 
    else alert("No matches"); 
},"json"); 

или установить заголовок CONTENTTYPE в PHP:

<?php 
    $user_input=$_GET['userinput']; 
    //print_r($user_input); 
    header('Content-type: application/json'); 
    if(!is_null($user_input)) exit('{ "status": true }'); 
    else exit('{ "status": false }'); 
?> 
+1

Другие опции - передать «json» в качестве 4-го параметра в '$ .get()' или установить «Content-Type» ответа как «application/json». Хотя я согласен, что это лучшая установка – Ian

+0

, спасибо большое, это работает! –

+0

erm .... 'jQuery.ajax()' самая лучшая настройка: P – itachi

Смежные вопросы