• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

przekazanie tablicy php do js

Object Storage Arubacloud
0 głosów
1,746 wizyt
pytanie zadane 1 września 2017 w JavaScript przez Maciejf Początkujący (470 p.)

Witam, nie znalazłem odpowiedzi w istniejących tematach więc zadaję nowe pytanie ...

 

Pobieram z php dane z SQL

$ile = mysqli_num_rows($rezultat);
while($row=mysqli_fetch_array($rezultat)){
    $i= $i+1; 
   $zmienna[$i]=$row['id'];

}

Zmienna $ile mówi mi ile jest pasujących w zapytaniu wyników, dla przykładu dajmy 2

$zmienna[1] = 40

$zmienna[2] = 52

Teraz w JS przypisuję zmienne z php

  var ilez = '<?= $ile ?>';       
  var zphp = '<?= $zmienna[1] ?>',
  zphp2= '<?= $zmienna[2] ?>';

I teraz pytanie, jak przypiszę zmienne na sztywno jak powyżej to wszystko działa, ale ja tu muszę mieć automat uzależniony od tego ile wartości zwróci SQL.

Próbowałem czegoś takiego, ale nie działa proszę o pomoc.

for (i=1 ; i<=ilez ; i++){

var zphp[i] = '<?= $zmienna[i] ?>'

}

 

 

1 odpowiedź

0 głosów
odpowiedź 1 września 2017 przez Ehlert Ekspert (212,670 p.)

Przekazywanie zmiennych w taki sposób to kiepski pomysł. Wykorzystaj AJAXa. Po stronie serwera pakujesz dane w jedną tablicę i print json_encode

komentarz 1 września 2017 przez xandros Nałogowiec (29,450 p.)
<?php

echo json_encode(['data' => ['a','b']]);

 

komentarz 2 września 2017 przez cyklop123 Bywalec (2,790 p.)

A po stronie javascriptu 

JSON.parse(to_co_zwróci_php)

 

komentarz 2 września 2017 przez Maciejf Początkujący (470 p.)
JSON.parse(to_co_zwróci_php)

"to co zwróci php" , nic mi to nie mówi, co mam tu wstawić ?

komentarz 2 września 2017 przez cyklop123 Bywalec (2,790 p.)

w PHP wyświetlasz tekst zakodowany do postaci JSON a w js wstawiasz ten tekst 

przykład z echo 

JSON.parse(<?php echo json_encode($tablica); ?>)

przykład z ajaxem

js

var owoce; 
var xhttp = new XMLHttpRequest();
  xhttp.onreadystatechange = function() {
    if (this.readyState == 4 && this.status == 200) {
      owoce = JSON.parse(this.responseText);
    }
  };
  xhttp.open("GET", "strona.php", true);
  xhttp.send();

strona.php

<?php
$owoce = array (
   "owoce"  => array("a"=>"pomarańcza", "b"=>"banan", "c"=>"jabłko"),
   "liczby" => array(1, 2, 3, 4, 5, 6),
   "dziury" => array("pierwszy", 5 => "drugi", "trzeci")
);

echo json_encode($owoce);


?>

Z tym że ajax działa asynchronicznie

Jaśniej już nie potrafię

komentarz 2 września 2017 przez Ehlert Ekspert (212,670 p.)
Wypada ustawić header Content-type dla odpowiedzi http. Wtedy js widzi od razu obiekty.
1
komentarz 3 września 2017 przez xandros Nałogowiec (29,450 p.)
cyklop123

Jeśli to konieć pliku nie musisz kończyć kodu php ?>, a nawet jest to niezalecane.

I za pewne kod będzie działał na lepszej wersji php, możesz używać skróconej wersji arraya: http://php.net/manual/en/language.types.array.php#example-56

Podobne pytania

0 głosów
2 odpowiedzi 670 wizyt
pytanie zadane 7 lipca 2017 w PHP przez Maciejf Początkujący (470 p.)
0 głosów
0 odpowiedzi 192 wizyt
pytanie zadane 17 lutego 2021 w JavaScript przez Freez3 Nowicjusz (140 p.)
0 głosów
0 odpowiedzi 401 wizyt
pytanie zadane 24 maja 2019 w JavaScript przez iframeeh Użytkownik (680 p.)

92,550 zapytań

141,394 odpowiedzi

319,522 komentarzy

61,935 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...