2017-03-24 14 views
0

私のコードはPHPでdataTypeオブジェクトを返しますが、AJAXを使用して同じ関数を呼び出すときに、データ型を文字列として返します。データ型をJSONオブジェクトにしたい。jsonオブジェクトの代わりに返すajax投稿

PHPコード

$result = $manualRequest->getUser($_POST['phonenumber']); 

print_r($result); 

これは、実際に解析されたデータベース・オブジェクトです

AJAXコード

function getCustomer() { 
     var callerNumber = $('#caller_number').val(); 
     var data = { 
      'phonenumber': callerNumber 
     }; 
     var url = "customerRequest.php"; 

    $.ajax({ 
     url: url, 
     data: data, 
     type: 'POST', 
     dataType: 'JSON', 
     success: function (result) { 
      console.log(result); 
     } 
    }); 
} 

私は望ましい結果を取得していますが、私はJSONをしたいですオブジェクトであり、文字列ではありません。

+0

'$ manualRequest->のgetUser($ _ POST [ 'PHONENUMBER'] ); 'それは何を返すのですか? –

+0

' print(json_encode($ result)) ' –

答えて

1

print_rは、一般的に有効 JSONを返さない、あなたはそれが有効なJSONだ、とdataTypejsonに設定されている限り

$result = $manualRequest->getUser($_POST['phonenumber']); 
echo json_encode($result); 

をしたい、jQueryのは他に、このような、何としてそれを解析しますあなたのajaxリクエストに「解析エラー」が発生するはずです。 PHPファイルで

+0

申し訳ありません申し訳ありません –

0

追加:

header('Content-type:application/json;charset=utf-8'); 
echo json_encode($result); 

の代わりに、あなたはJSONオブジェクトに、あなたの文字列のJSONを解析するためにJSON.parseメソッドを使用することができますJavaScriptでprint_r($result);

+0

申し訳ありませんが、あなたのjavascriptファイルで –

+0

が動作しません。console.log(結果)の行をconsole.log(JSON.parse(result))に変更してください。 –

+0

これは私に以下のエラーを与えていますUncaught SyntaxError:JSON.parse()のObject.success(startrequest.php:2012)のFunction.handleSuccess(jquery-ui.min.js: 142) –

0

を。

この方法の文書化:https://www.w3schools.com/js/js_json_parse.asp

+0

PHPからPARSE(MBASS)オブジェクトを実際に返しています。以下のエラーを取得します。Uncaught SyntaxError:JSON.POS() (JSONの予期しないトークンP)をObject.success(startrequest。php:2012) Function.handleSuccess(jquery-ui.min.js:142) –

+0

ああ、わかりました。あなたのPHPがJSON形式への応答を送信しないようです。私はあなたがŽeljkoKrnjićのソリューションを使うことができると思います。レスポンスヘッダを正しいフォーマットに設定する必要があります:header( 'Content-type:application/json; charset = utf-8'); json.encodeメソッドを使用して、formated JSONオブジェクトで応答します。 –

0

あなたはかなりJSONをしたい場合は

$result = $manualRequest->getUser($_POST['phonenumber']); 
echo json_encode($result , JSON_NUMERIC_CHECK | JSON_PRETTY_PRINT); 

編集

$.ajax({ 
    url: url, 
    type: 'POST', 
    dataType: 'json', 
    data: data, 
    success:function(response){ 
     console.log(response); 
    } 
}) 
.done(function() { 
    console.log("success"); 
}) 
.fail(function() { 
    console.log("error"); 
}) 
.always(function() { 
    console.log("complete"); 
}); 
+0

申し訳ありません –

関連する問題