2012-02-14 3 views
0

Я следующий скрипт, который вызывается JQuery AJAXAjax запрос не возвращает JSON массив

function report_range($time, $ht, $start_date, $end_date) { 
     $query = mysql_query("SELECT type, count(*) FROM tracking WHERE htcode = '$ht' AND type IN ('viewed', 'shared', 'printed', 'emailed', 'used') AND date >= '$start_date' AND date <= '$end_date' GROUP BY type"); 
     while ($result = mysql_fetch_assoc($query)){ 
      switch ($result['type']){ 
       case 'viewed': 
        $viewed = $result['count(*)']; 
        break; 
       case 'shared': 
        $shared = $result['count(*)']; 
        break; 
       case 'used': 
        $used = $result['count(*)']; 
        break; 
       case 'emailed': 
        $emailed = $result['count(*)']; 
        break; 
       case 'printed': 
        $printed = $result['count(*)']; 
        break; 
      } 

     } 
     //build the table rows 
     return '<tr><td>'.$time.'</td><td>'.$viewed.'</td><td>'.$shared.'</td><td>'.$used.'</td><td>'.$printed.'</td><td>'.$emailed.'</td></tr>'; 
//this is where the problem is, i dont think i am returning the value right. 

    } 

// создаем переменные для отправки JSon

$stat_1 = report_range('Today', '1672627', date('Y-m-d'), date('Y-m-d')); 
    $stat_2 = report_range('Yesterday', $_POST['htcode'], date('Y-m-d', strtotime('yesterday')), date('Y-m-d', strtotime('yesterday'))); 
    $stat_3 = report_range('Past 30 Days', $_POST['htcode'], date('Y-m-d', strtotime('30 days ago')), date('Y-m-d')); 
    $stat_4 = report_range('All Time', $_POST['htcode'], date('Y-m-d', strtotime('3600 days ago')), date('Y-m-d')); 

// создаем массив JSON

echo json_encode(array(
     'stat_1'=>$live_1, 
     'stat_2'=>$live_2, 
     'stat_3'=>$live_3, 
     'stat_4'=>$live_4 
    )); 

я не могу показаться, чтобы получить массив JSON с четырьмя переменными, содержащими строки таблицы я здание в фу nction.

jquery работает, так как он показывает нулевые значения.

+0

Вы можете разместить свой jquery funciton. Также измените ваши $ live_x vars на $ stat_x vars –

+0

Вы не объявляете переменные $ live *. – CBusBus

ответ

3

Не должен ли этот $ live_1 и т. Д. Var быть $ stat_1?

echo json_encode(array(
     'stat_1'=>$stat_1, 
     'stat_2'=>$stat_2, 
     'stat_3'=>$stat_3, 
     'stat_4'=>$stat_4 
    )); 
+0

ну дерьмо .. я смущен. Сегодня я слишком долго это делаю. Спасибо за это ... Пусть это будет уроком для всех вас. Когда вы переформатируете свой код, проверьте свои переменные. –

Смежные вопросы