2014-10-03 139 views
0

我有一個JSON請求的問題。我有一個頁面有兩個不同的請求, 第一個按預期工作,但第二個不斷出現一個意外的標記o我不明白的錯誤。 第一Ajax調用:奇怪的JSON返回

$.ajax({ 
       type:'POST', 
       dataType: 'json', 
       url: 'inc/getloads.php?q='+boxnum, 
       success:function(data){ 
        if (data.l_id && data.u_id) { 
        var t_id = data.t_id; 
        var d_id = data.d_id; 
        var b_id = data.b_id; 
        var bcont = data.bcont; 
        var po_num = data.po_num; 
        var f_date = data.f_date; 
        var t_date = data.t_date; 
        var depart = data.depart; 
        var dest = data.dest; 
        var miles = data.miles; 
        var p_amt = data.p_amt; 
        var tpm = data.tpm; 
        var d_total = data.d_total; 

        } 

這一切正常,所有數據是他們應該,但這裏是第二個電話:

$.ajax({ 
       type:'POST', 
       dataType: 'json', 
       url: 'inc/getfunctions.php?q='+boxnum+'&func=load_po', 
       success:function(data){ 
        if (data.po_num) { 
        var e_id = data.l_id; 
        var load_num = data.load_num; 
        var expense = data.expense; 
        var ex_cost = data.ex_cost; 
        var po_num = data.po_num; 

        } 

這一個炸彈與意想不到的令牌,我有閱讀有關不解析兩次,是一個解決方案? 的第二個呼叫的PHP:

$func = $_REQUEST['func']; 
$_SESSION['func']= $func; 
switch ($func) { 
case 'load_po': 
$q = intval($_REQUEST['q']); 
require_once("medoo.min.php"); 
$database = new medoo(); 
$database->select("Expenses", "*", array(
"id" => $q)); 
if (count($datas)>0) { 
    foreach($datas as $data){ 
     $l_id=$data['id']; 
     $po_num=$data['po_num']; 
     $load_num=$data['load_num']; 
     $expense=$data['expense']; 
     $ex_cost=$data['ex_cost']; 
    } 
    $rdata = array(
    'l_id'=> $l_id, 
    'po_num'=> $po_num, 
    'load_num'=> $load_num, 
    'expense'=> $expense, 
    'ex_cost'=> $ex_cost 
    ); 
    echo json_encode($rdata); //$datas['first_name'] 
} else { 
    echo 'no datas'; 
} 
break; 
} 
+3

使用'開發商tools','BP網絡在k' tab - >你可以調查php文件的輸出。也許它不會返回你期待的結果。 – 2014-10-03 16:31:26

+0

你可以發佈爆炸的JSON嗎? – 2014-10-03 16:31:50

+0

首先編碼您的數據以便在URL中使用。 – Brad 2014-10-03 16:33:46

回答

0

$ DATAS永遠不會初始化 ,你有可以執行多次的foreach,但你只分配結果一次:

foreach($datas as $data){ 
    $l_id=$data['id']; 
    $po_num=$data['po_num']; 
    $load_num=$data['load_num']; 
    $expense=$data['expense']; 
    $ex_cost=$data['ex_cost']; 
} 
$rdata = array(
'l_id'=> $l_id, 
'po_num'=> $po_num, 
'load_num'=> $load_num, 
'expense'=> $expense, 
'ex_cost'=> $ex_cost 
); 

所以也許如果你只想從DATAS檢索一排,這樣做:

$data = $datas[0]; 

$l_id=$data['id']; 
$po_num=$data['po_num']; 
$load_num=$data['load_num']; 
$expense=$data['expense']; 
$ex_cost=$data['ex_cost']; 

$rdata = array(
    'l_id'=> $l_id, 
    'po_num'=> $po_num, 
    'load_num'=> $load_num, 
    'expense'=> $expense, 
    'ex_cost'=> $ex_cost 
);