2017-06-09 3 views
0
<? 
function phpfunction(){ 

//insert data to database //some codes work inside this. 

$return_arr[] = array($arrResult,   // include only one value 
         $response_array['status']);//success or not success value 

return $return_arr; 
} 
?> 

この$のreturn_arr [] JavaScriptのAjaxのファイルへの値の復帰>>各値を別々に取得するために2つの値を持つajax 'data'を作成するにはどうすればいいですか?

    $.ajax({ 
          url: 'PHPMethodCalls_AL.php', 
          type: 'post', 
          data: {... post many values to php function.. }, 
          success: function(data) { 
          alert(data); 

データが正常にこのフォーマットとして来ている// >> [[[ "Testing123"]、 "成功"]]

      var results = JSON.parse(data); 
          alert(results); 

//このアラートは>> Testing123、成功

     }, 

//この1つはポストVALUありました電子

$newCIarrayList = array(); 
$newCIarrayList = phpfunction(..data include); 
echo json_encode($newCIarrayList); 

を機能するように、私は別に「Testing123」と「成功」の値としてそれぞれの値を取得するために何をすべき?私はsplit( "、")関数を使ってみましたが、うまくいきませんでした。

+1

表示されていません。PHPの世界でJSONを発行する場所。 – tadman

+0

@tadmanコードを編集しました。 –

答えて

0

success: function(data)に戻ると、入れ子配列の文字列化されたjson:[[["Testing123"],"success"]]です。

ステータスとペイロードをこの構造から取得するには、次のスニペットを使用できます。

var data = '[[["Testing123"],"success"]]'; 
 
var parsedData = JSON.parse(data); 
 
console.log(parsedData); // quite nested 
 

 
var status = parsedData[0][1]; 
 
console.log(status); 
 

 
var payload = parsedData[0][0][0]; 
 
console.log(payload);

またはES6の非構造使用:

var data = '[[["Testing123"],"success"]]'; 
 
var parsedData = JSON.parse(data); 
 
[[[payload], status]] = parsedData; 
 
console.log(status); 
 
console.log(payload);

をしかし私は、あなたがあなたのphp側のコードを修正することを示唆している、そしてそれはそのようになるだろう理想的には、より単純な構造を形成する:

{"status": "success", "payload": "Testing123"} 
1

あなたは.Thenの下にあなたが簡単

<? 
function phpfunction(){ 

    //insert data to database //some codes work inside this. 

    $return_arr = array("data" =>$arrResult,   // include only one value 
         "status" =>$response_array['status']);//success or not success value  
    return $return_arr; 
} 
?> 

VAR結果= JSON.parse(データ)を取得することができますようにAJAXのために応答する前に、PHPの関数で区切ることができます。

アラート(results.data || results.status);

+0

結果値に警告すると、[Object、Object]が表示されます。データに値が入力されません。 –

+0

'console.log()でデバッグすると、オブジェクトの値を取得するのに役立ちます –

+0

ありがとうございます。結果の値は来ますが、results.dataの値は定義されていません。 –

関連する問題