0

AJAX 呼び出しを実行しようとしています。AJAX を使用するのは初めてです。私のコードは次のとおりです。

$.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 にアクセスすると、「未定義のインデックス」エラーが発生します。これを行う適切な方法は何ですか?

4

1 に答える 1

1

テスト コードをコメント アウトすると、php は正常に表示されます。

<?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");

または、php で contentType ヘッダーを設定するには:

<?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 }' );
?>
于 2013-05-09T18:14:27.280 に答える