Tablica w PHP do formatu JSON

0

Mam skrypt w PHP, który przyjmuję taką tablicę:

var objectData = [
       {liefer: 1484, beleg: '1/500', date: '31.10.2016'},
       {liefer: 1410, beleg: '2/481', datum: '31.10.2016'},
       {liefer: 1348, beleg: '3/748', datum: '31.10.2016'},
     ]

Chcę taką tablicę pobrać skryptem PHP za pomocą AJAXa.

Jak "wypluć" skryptem taką tablicę w PHP?

Próbowałem:

$q = mysql_query('SELECT * from table');
while($item = mysql_fetch_array($q)){
     $arr[] = array('liefer'=>$item[0], 'beleg'=>$item[1], 'date'=>$item[2]);
}
print_r(json_encode($arr));

To jest to samo? Bo skrypt nie chcę działać i nie wiem czy przyjmuję dobry format tablicy.

0

Tam błąd mały, zamiast "datum" ma być "date".

0

a czemu print_r ? użyj zwykłego echo żeby było wszystko poprawnie

0

Chcę zaimplementować plugin na mojej stronie do wyświetlania danych w formie arkusza kalkulacyjnego. Korzystam z Handsontable.

Do objektu przypisuję zwykłą tablicę:

var objectData = [
       {liefer: 1484, beleg: '1/500', date: '31.10.2016'},
       {liefer: 1410, beleg: '2/481', date: '31.10.2016'},
       {liefer: 1348, beleg: '3/748', date: '31.10.2016'},
]


hot1 = new Handsontable(container1, {
   data: objectData,
   ....

Dane przypisują się do objektu i tworzy się arkusz kalkulacyjny z danymi i komórkami.

Natomiast jeżeli pobieram AJAXem:

$.ajax({
   url: 'content/ajax.php',
   type: 'GET',
   data: { param: 'getDataSheet' },
   success: function(data){
        var obj = JSON.parse(data);
        objectData = obj.data;
   }
});

Nie chce przypisać mi danych do arkusza.

0

A jesteś pewny, że poprawny adres i że nie leci jakiś error do ajaxa? Sprawdź w narzędziach dla programistów wbudowanych w kazda przeglądarkę + oprócz success dodaj jeszcze error w wywołaniu ajaxa.

0

Wywołanie AJAX jest OK - działa, dostaje tablicę, wywołałem sobie ją w alert(). Kwestia tego, że nie wiem czy poprawny format tablicy przyjąłem od PHP i nie chce poprawnie przypisać mi danych.

0

Jeśli by json nie był jsonem to json.parse by się wywaliło i byś w konsoli miał błąd. używasz w ogóle konsoli w przeglądarce?

w php możesz jeszcze zrobić

ob_clean();
echo json_encode($arr);

Wtedy wyczyści niepotrzebne znaki które gdzieś mogły się wedrzeć przed echo do bufora

Edit: i dodaj sobie po json parse

console.log(obj.data);

to w konsoli zobaczysz co tak właściwie masz w tym obiekcie

0

Pomogło** ob_clean();**

Wielkie dzięki!

1 użytkowników online, w tym zalogowanych: 0, gości: 1