2016-06-27 7 views
-1

私はPHPとMySQLを使用していくつかのコンテンツを交換しています。 クリックハンドラは、AJAXリクエストをPHPスクリプトに送信してクエリを実行し、その結果をエンコードしてJSONオブジェクトとして出力します。 個々の値をJavaScript変数に設定する場合と同じように、結果を実際に使用する方法を考えることができません。JQuery AJAXリクエストからJSONレスポンスを使用するにはどうすればよいですか?

編集:コンソールに印刷するための特定の値を得るために、私が試したことをいくつか追加しました。

編集:正しい構文が見つかりました:

response[0].foo 

のjavascript:

var listId = $(this).children('.hidden-id').html(); 

     var options = new Object(); 
     options.data = listId; 
     options.dataType = 'json'; 
     options.type = 'POST'; 

     options.success = function(response) { 
      console.log(response[0].foo); 
     }; 

     options.url = './inc/change_list.php'; 

     $.ajax(options); 

PHPスクリプト:

$list_id = $_POST['list_id']; 
    $q = "SELECT id, title, description, position FROM items WHERE list_id=$list_id ORDER BY position ASC"; 
    $r = mysqli_query($dbc, $q); 
    if (mysqli_num_rows($r) > 0) { 

     $result = array(); 
     while ($row = mysqli_fetch_array($r, MYSQLI_ASSOC)) { 
      $add_result = [ 
       'id' => $row['id'], 
       'title' => $row['title'], 
       'description' => $row['description'] 
      ]; 
      $result[] = $add_result; 
     } 
     $result = json_encode($result); 
     echo $result; 

    } else { 
     echo '{"result":"failure"}'; 
    } 
+0

はあなたの問題は、リンクされた答えはあなたの配列を反復処理して作業する必要がある – charlietfl

+0

オブジェクトと配列で作業する方法についての良いチュートリアルを提供してそうしているのかについて、より多くの特定する必要がありますあなたの反復の各オブジェクトインスタンス – charlietfl

+0

したがって、forループを使用してください。 –

答えて

-3

JSON応答が自動的にJavaScriptオブジェクトに解析されます。だから、あなただけ行うことができます。

options.success = function(response) { 
    console.log(response.foo); // logs "bar" 
    // or 
    var foo = response.foo; // foo now holds "bar" as it's value 
}; 
+0

私のコンソール(Firefox Firebug)では、これを試しましたが、定義されていません。 –

+0

'response'は配列ではないオブジェクトです – charlietfl

+0

@RuairiGann' response.data.foo'はどうですか? –

関連する問題