2017-06-14 64 views
1

PHP多維數組我有這個PHP接收在阿賈克斯

include_once($preUrl . "openDatabase.php"); 

$sql = 'SELECT * FROM dish'; 
$query = mysqli_query($con,$sql); 
$nRows = mysqli_num_rows($query); 
if($nRows > 0){ 
    $dishes = array(); 
    while($row = $query->fetch_assoc()) { 
     $dishes[] = $row; 
    } 
}else{ 
    $dishes = "cyke"; 
} 


    echo json_encode($dishes , JSON_FORCE_OBJECT); 

這阿賈克斯(在framework7)

myApp.onPageInit('dailyMenu',function() { 
    $$.post('http://theIP/eatsServer/dailyMenu.php', {}, function (data) { 
      console.log(data); 
    }); 
}); 

我在阿賈克斯的數據得到的是

{ 「0」 :{ 「IDC」: 「2」, 「標題」: 「helloWorld1」, 「副標題」: 「hellsubWorld」, 「價格」: 「16.5」, 「IMG」: 「IMG/testeImg.jpg」, 「索多特」: 「0」}, 「1」:{ 「IDC」: 「3」, 「標題」: 「helloworld2」, 「副標題」: 「hellosubWorld2」, 「價格」: 「20.5」, 「IMG」:「IMG/testeImg .jpg「,」soldout「:」1「}}

我已經試過數據了[0];數據[0]。 data.0; data0當我使用數據[「0」]只是給了我'''。

我想獲得標題和其餘的內部0.做一個cicle的地方,我將打印多個div,我只改變數組在html頁面中的位置。

爲例

for(...){ 

    innerhtml += <div clas=""> 

        <div class""> data(position i).title </div> 

        <div> data(position i) subtitle</div> 

       </div> 

} 

回答

2

試試這個(回調之後添加類型:JSON)

$$.post('url', {}, function (data) { 
    var obj = JSON.parse(data); 
    console.log(obj); 
    alert(obj["1"].title); 
}); 

或者你可以使用JSON.parse(數據);在代碼的結束

$$.post('http://theIP/eatsServer/dailyMenu.php', {}, function (data) { 
     console.dir(data); 
},'json'); 

注重},'json');,現在$$後正在讀取響應爲JSON:

+0

我已經嘗試過,但每當我把例如:var obj = jQuery.parseJSON(json_data);但alert或consoleLog不起作用 – sergio

+0

用法:var obj = JSON.parse(data); ('http://theIP/eatsServer/dailyMenu.php',{},function(data){ var obj = JSON.parse(data); console.log(obj) ; },'json'); –

+0

我把你在commentatys中說過的東西,但那不是在答案,所以我標記你anwser正確或什麼?在這裏,如果你需要編輯我所提出的$$ post('url',{},function(data ){ var obj = JSON.parse(data); console.log(obj); alert(obj [「1」]。title); });注:感謝它的工作;) – sergio

1

既然你接受JSON數據作爲迴應,你應該使用這個。

如果你沒有做任何更新數據的基礎上,你可以使用:

$$.getJSON('http://theIP/eatsServer/dailyMenu.php',{}, function (data) { 
    console.dir(data); 
}); 

這是$$的方式AJAX:

$$.ajax({ 
     url: "url_here", 
     method: "POST", 
     dataType:"json",   
     data: {}, 
     success: function(r){ 
      // response r. 
     }, error: function(error){ 
      //error 
     } 
    });