2013-03-28 5 views
8

Chcę zbudować wykres w jqchart, gdzie potrzebuję uzyskać dwie tablicejak zdobyć dwie tablice z php za pomocą json, jquery ajax?

Teraz chcę wykonać operację jak podano poniżej.Odpowiada błędu.

html 
$.ajax(
     { 
      type: "GET", 
      url: "customer_coverage.php", 
      data: {id:id}, 
      contentType: "application/json", 
      dataType: "json", 
      success: function (data21,data22) { 

       initChart2(data21,data22); 
      } 
     }); 




     function initChart2(data21,data22) { 
      $('#jqChart2').jqChart({ 


       series: [ 
       { 
          type: 'column', 
          title: 'no of days ', 
       data:data21, 

         }, 
       { 
          type: 'column', 
          title: 'no of days ', 
      data:data22, 

         }, 


         ] 
      }); 
     } 

heres kodu PHP

echo json_encode($arr1); 
    echo json_encode($arr2); 

Więc ktoś ma pomysł jak to zrobić?

+1

Dlaczego nie scalić dwóch tablic, a następnie zakodować je jako J SYN? –

Odpowiedz

2

Sprawdź, czy jesteś w stanie wyprodukować dwie tablice obiektów JSON to można spróbować z tym:

var data21,data22; 
    $.ajax({ 
     type: "GET", 
     url: "customer_coverage.php", 
     data: {id:id}, 
     contentType: "application/json", 
     dataType: "json", 
     success: function (data) { 
      $.each(data, function(i, item){ 
       data21 = item.data21; 
       data22 = item.data22; 
      }); 
      initChart2(data21,data22); 
     } 
    }); 

i jestem zakładając, jeśli jesteś w stanie produkować to:

[ 
{ 
    "data21": { 
     ......... 
    }, 
    "data22": { 
     ........ 
    } 
} 
] 
2

Nie można uzyskać wielu podobnych obiektów. W przypadku obiektu JSON potrzebny będzie pojedynczy obiekt. Więc, co możesz zrobić, stwórz obiekt opakowania, umieść w nim te dwie tablice.

Więc w zasadzie, kod php będą:

<?php 
$arr= array(); 
$arr['arr1'] = $arr1; 
$arr['arr2'] = $arr2; 

echo json_encode($arr); 
?> 

Więc teraz trzeba będzie jeden główny tablicy i tak jeden obiekt JSON.

Po stronie JS otrzymasz pojedyncze dane. Mała modyfikacja będzie miała postać:

$.ajax(
     { 
      type: "GET", 
      url: "customer_coverage.php", 
      data: {id:id}, 
      contentType: "application/json", 
      dataType: "json", 
      success: function (data) { 
      var data21=data['arr1']; 
      var data22=data['arr2']; 
       initChart2(data21,data22); 
      } 
     }); 

To powinno działać.

9

ma potrzeby echo json kodują dwa razy .... połączyć tablicę i wysyłać dane .......

echo json_encode(array('result1'=>$arr1,'result2'=>$arr2)); 

i uzyskać dane wg

initChart2(data.result1,data.result2); 
+2

+1 ładna odpowiedź. –

1

czego potrzebujesz połączyć obie tablice przy użyciu array_merge().

Przykład

$response = array(); 

$response = array_merge($arr1,$arr2); 
echo json_encode($response); 
Powiązane problemy