2016-12-14 64 views
0

試圖檢索的名稱城市在jquery中。看起來PHP結果在jQuery中作爲數組返回。在jQuery中獲取php數組?

<?php 
$val = array(
    name => $_POST["name"], 
    city => $_POST["city"] 
); 

foreach($val as $res) { 
    echo $res; 
} 
?> 

$(document).ready(function(){ 
 
    $.post("get.php", 
 
     { 
 
      name : "fakename", 
 
      city : "fakecity" 
 
     }, 
 
     function(data){ 
 
      // returns name and city as a single array 
 
      alert(data); 
 
      // how to get it as an associative array 
 
      // desired result : 
 
      //* alert(data.name); 
 
      //* alert(data.city); 
 
     } 
 
    ); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

+4

爲什麼不使用JSON? – Machavity

+0

我嘗試過使用JSON.parse(),但它沒有解決。 – YSuraj

回答

3

使用JSON:

<?php 

$val = [ 
    'name' => $_POST["name"], 
    'city' => $_POST["city"] 
]; 
echo json_encode($val); 
die(); 

?> 

在您的JS:

$.ajax({ 
    url: 'get.php', 
    type: 'POST', 
    data: { 
     name: 'fakename', 
     city: 'fakecity' 
    }, 
    dataType: 'json' 
}).done(function(ret){ 
    console.log(ret.name, ret.city); 
}); 
0

在你的PHP,只返回一個JSON編碼數組:

<?php 
$val=array(
    name => $_POST["name"], 
    city => $_POST["city"] 
); 
echo json_encode($val); 
?> 

,然後在你的JS,你幾乎可以做你是:

$(document).ready(function(){ 
    $.post("get.php", 
    { 
     name : "fakename", 
     city : "fakecity" 
    }, 
    function(data){ 
     // returns name and city as a single array 
     alert(data); 
     // how to get it as an associative array 
     // desired result : 
     //* alert(data.name); 
     //* alert(data.city); 
    }); 
}); 
0

發送數據作爲JSON字符串,然後在javascript它收到一個JavaScript對象。

使用jQuery.post(url [, data ] [, success ] [, dataType ])調用的第4個參數來指定js數據將作爲json返回。

<?php 

    $val=array(
      name => $_POST["name"], 
      city => $_POST["city"] 
      ); 
    echo json_encode($val); 
?> 

然後在js

$(document).ready(function(){ 
     $.post("get.php", {name : "fakename",city : "fakecity"}, 
      function(data){ 
       //alert(data); 
       alert(data.name); 
       alert(data.city); 
     },'json');     // extra param specifying returned data will be json 
    });