2014-10-03 3 views
0

У меня проблема с запросами JSON. У меня есть страница с двумя разными запросами, первая работает так, как предполагалось, но вторая продолжает придумывать неожиданный токен o ошибки, которую я не понимаю. первый Аякс вызова:странный возврат 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; 

        } 

Это одна бомба с неожиданными лексемами, у меня есть читал о том, что не разбирал его дважды, это решение? РНР для 2-го вызова:

$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',' Networ k' tab -> вы можете исследовать вывод файла php. Возможно, он не возвращает то, что вы ожидаете, чтобы он вернулся. –

+0

Можете ли вы опубликовать JSON, который взрывается? –

+0

Начните с кодирования данных для использования в URL-адресе. – Brad

ответ

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 
); 

так может быть если вы только хотите, чтобы извлечь одну строку из 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 
); 
Смежные вопросы