2017-02-10 3 views
-2

jQuery AJAX関数のPHPページから多次元連想配列を返さなければなりません。 'seachsongs.php' と呼ばれるAJAX jquery関数から多次元連想json配列にアクセスする方法

これは私のPHPページで

 <?php 
$brano = $_POST['brano']; 

    $sql = "SELECT Titolo, Autore FROM Brani WHERE Titolo = '$brano';"; 

    $ris = $conn->query($sql); 


    while ($row = $ris->fetch_array()) { 

     $arr[] = $row; 
    } 

    echo json_encode(array('data' => $arr)); 

    ?> 

これは、私はjQueryのからの配列データにアクセスするにはどうすればよい

$(document).ready(function() { 


    $('#nBrano').keyup(function() { 

     nomeBrano = $(this).val(); 
     $.ajax({ 
      type: "POST", 
      data: {brano: nomeBrano}, 
      url: "searchsong.php", 
      success: function (data) { 
       document.write(data); 
       //alert("Prova" + data['data'][0]["Titolo"]); 
       /*if (msg != 'null') { 
        $('#similarSongs').css('display', 'block'); 
        /*$.each(prova, function (key1, value1) { 
         $.each(value1['two']['three'], function (key1, value1) { 
          document.write('test'); 
         }); 
        }) 
        $('#similarSongs table').html(tabella); 
       } 
       if (msg == 'null') { 
        $('#similarSongs table').html("Nessun brano simile trovato"); 
        $('#similarSongs').css('display', 'block'); 
       }*/ 
      }, 
      error: function() { 
       //alert('errore'); 
      } 

     }); 

    }); 

}); 

私のjQueryのAJAX機能ですか?正しい声明は何ですか?

alert(data) 

印刷この

{"data":[{"0":"Animals","Titolo":"Animals","1":"Martin Garrix","Autore":"Martin Garrix"},{"0":"Animals","Titolo":"Animals","1":"Maron V","Autore":"Maron V"}]}{"data":[{"0":"Animals","Titolo":"Animals","1":"Martin Garrix","Autore":"Martin Garrix"},{"0":"Animals","Titolo":"Animals","1":"Maron V","Autore":"Maron V"}]} 

PS:申し訳ありませんが、私の悪い英語を形成します。

+0

あなたは 'data'をどうするかをしたいのだろうか? – imudin07

+0

これはpdoのfetchAllからのものですか? – 25r43q

+0

あなたのAjax呼び出しに 'dataType: 'json''を追加すると、jQueryがあなたのためにそれを変換します。 –

答えて

0

このリクエストのデータ型はjsonに設定されているため、返される応答はjsonオブジェクトである必要があります。あなたはこの方法でアクセスすることができます:あなたはそれを取得した後

$(document).ready(function() { 
    $('#nBrano').keyup(function() { 
     nomeBrano = $(this).val(); 
     $.ajax({ 
      type: "POST", 
      data: {brano: nomeBrano}, 
      url: "searchsong.php", 
      dataType:'json', 
      success: function (response) { 
       for(var i=0; i<response['data'].length; i++){ 
        console.log(response['data'][i][/*your_target_index*/]); 
       } 
      }, 
      error: function() { 
       //alert('errore'); 
      } 
     }); 
    }); 
}); 

see more about ajax

+0

変更した内容と使用する理由を含める必要があります。 'data'がjsonオブジェクトであるので、' blob 'をポストするだけではなく、 'document.write(data)'はそれほど魅力的ではありません。 –

関連する問題