Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JavaScript][PHP] Przekazanie dwóch tablic do JS
Forum PHP.pl > Forum > Przedszkole
-Krzysiek-
Witam,

w funckji js mam coś takiego
  1. function funkcjaNazwa (){
  2.  
  3. var values1 = new Array(100,34,56,78,99,112);
  4. var values2 = new Array(55,23,5,33,80,59);
  5. .
  6. .
  7. .
  8. }


chciałbym te tablice wypełnić tablicami z php

użyłem
  1. echo json_encode($tab); // otrzymuję ["123","223","123","97"]


jak to teraz zapakować do funkcji JS?
próbowałem przez parametry, ale nie daje to efektu
tolomei
Witaj.

Może tak:

  1. var values1 = <?php echo $tab; ?>;


JSONa nie musisz rozkodowywać jeśli chcesz go używać w JavaScript.

Pozdrawiam.
-krzysiek-
hej, no tak też nie działa.
gdy jest tak jak teraz i wywołam np. pod jakimś buttonem onClick działa ok.
values1 i 2 pochodzą z zapytania sql

Array ( [0] => 123 [1] => 223 [2] => 123 [3] => 97 )

próbowałem też implode i potem showChart(<?php echo <toCoZimplode> ?>, <?php echo inneImplode ?>)
ale to jest do luftu, nie działa.
  1.  
  2. function showChart()
  3. {
  4. var values1 = new Array(100,50);
  5. var values2 = new Array(50,100);
tolomei
A tam nie działa.
Nie ma prawa nie działać.

http://ideone.com/EhEggu
http://jsbin.com/ajeguf/1/

Przy drugim przykładzie zobacz w konsoli.

Masz coś dalej w skrypcie nie tak.
-krzysiek-
no nie działa,

w skrypcie js w prostej pętli przesuwam się po tych tablicach z osobna. gdy zakodowałem jak wskazałeś tak jakbym jechał po każdej cyferce po kolei a nie liczbie.

new Array(123, 123, 1123)

potrzebuję to w js dokładnie w takiej postaci
tolomei
Pokaż więcej kodu jeśli możesz.
-krzysiek-
jak odpale to z onClick to działa ładnie, ale chce tą funkcję sparametryzować
js ( kod by Sephirus )
  1.  
  2. function showChart()
  3. {
  4. var values1 = new Array(100,50);
  5. var values2 = new Array(50,100);
  6. var bar1Width = 30;
  7. var bar1Spacing = 5;
  8.  
  9. var chart = document.getElementById('chart');
  10. chart.innerHTML = '';
  11. for(var i = 0; i < values1.length; i++)
  12. {
  13. var bar = document.createElement('div');
  14. bar.className = 'bar';
  15. bar.style.left= i*(bar1Width+bar1Spacing+2)+'px';
  16. bar.style.height = values1[i]+'px';
  17. bar.style.width = bar1Width+'px';
  18. chart.appendChild(bar);
  19.  
  20. var bar = document.createElement('div');
  21. bar.className = 'bar orange';
  22. bar.style.left= i*(bar1Width+bar1Spacing+2)+3+'px';
  23. bar.style.height = values2[i]+'px';
  24. bar.style.width = bar1Width-6+'px';
  25. bar.style.zIndex = 2;
  26. chart.appendChild(bar);
  27. }
  28. }
  29.  
tolomei
Wiesz co my się chyba nie rozumiemy.
Może kto inny Ci pomoże.

Mnie to działa:
http://jsbin.com/enidic/2/edit

HTML, który tworzy skrypt:
  1. <div class="bar" style="left: 0px; height: 12px; width: 30px;"></div>
  2. <div class="bar orange" style="left: 3px; height: 3px; width: 24px; z-index: 2;"></div>
  3. <div class="bar" style="left: 37px; height: 3px; width: 30px;"></div>
  4. <div class="bar orange" style="left: 40px; height: 13px; width: 24px; z-index: 2;"></div>
  5. <div class="bar" style="left: 74px; height: 7px; width: 30px;"></div>
  6. <div class="bar orange" style="left: 77px; height: 17px; width: 24px; z-index: 2;"></div>


Powodzenia.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.