Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php][js] - Przekazania tablicy z php do JS
ferrero2
post 3.02.2010, 16:17:21
Post #1





Grupa: Zarejestrowani
Postów: 171
Pomógł: 32
Dołączył: 5.08.2008
Skąd: Lublin

Ostrzeżenie: (0%)
-----


Witam, mam pewien problem z przekazaniem tablicy, pobranej z bazy MySQL do zmiennej PHP, do zmiennej JS.
Próbowałem już naprawdę mnóstwa eksperymentów, różnych głupich nawet, testowałem co mi przyszło do głowy nie patrząc nawet na to, że to działa po stronie serwera a to po stronie przeglądarki.
Od razu zaznaczam że nie chce korzystać z json lub XML.
O co mi chodzi.
1. Ładuje się strona (wykonuje się kwerenda która pobiera sobie dane do zmiennej $result)
2. Jako że jest to Tabela Asocjacyjna to chyba dużym problemem będzie przepisanie jej do JS więc zrobiłem coś takiego :
  1. $sql="SELECT raport FROM spis.raporty";
  2. $result=mssql_query($sql,$conn);
  3. $numrows=mssql_num_rows($result);
  4. while($result and $row=mssql_fetch_array($result))
  5. {
  6. $tablica[] = $row[0];
  7. }

Przepisałem sobie nazwy raportów do zwykłej tabeli jednowymiarowej.
3. Teraz mam funkcję w JS która podmienia mi wartości w selectach bez przeładowania strony, ale działa ona na tablicach JS a nie na danych pobieranych z bazy.
Kod
function zamiana(wybor)
{
var jeden = new Array;
if (wybor == "Programowanie") {
var dlugosc = jeden.length-1;
document.szukajka.elements.drugi.options.length = jeden.length;
for (var i=0; i<= dlugosc; i++) {
document.szukajka.drugi.options[i] = new Option(jeden[i]);
document.szukajka.drugi.options[i].value = jeden[i];
}


Nie używając ajaxa do łączenia się z bazą, chcę te dane które mam w $tablica[] przypisać do tabeli
"jeden"

Próbowałem już tak :
Kod
var jeden = new Array(<?php echo $tablica; ?>);


lub
Kod
var jeden = new Array($tablica);


lub

Kod
<?php echo 'var jeden = new Array('.$tablica.')';


Narazie najlepsze co udało mi się osiągnąć to zrobienie czegoś takiego co powoduje wyświetlenie pierwszej wartości w tabeli 16 razy.

Kod
$sql="SELECT raport FROM spis.raporty";
$result=mssql_query($sql,$conn);
$numrows=mssql_num_rows($result);
$i = 0;
while($result and $row=mssql_fetch_array($result))
{
$tablica[] = $row[0];
}
?>
<script language = "javascript">
<!--
function zamiana(wybor)
{
var jeden = new Array;
var  dwa = new Array;
for (var i=0; i<= <?php echo $numrows; ?>; i++) {
<?php $i++;?>   ( TUTAJ NIE CHCE ZWIĘKSZAĆ WARTOŚCI questionmark.gif)
jeden[i] = "<?php echo $tablica[$i]; ?>";
}
if (wybor == "Programowanie") {
var dlugosc = jeden.length-1;
document.szukajka.elements.drugi.options.length = jeden.length;
for (var i=0; i<= dlugosc; i++) {
document.szukajka.drugi.options[i] = new Option(jeden[i]);
document.szukajka.drugi.options[i].value = jeden[i];
}
}
}
-->
</script>


Proszę o pomoc, zwykłe przepisanie jednej kolumny z bazy z php do tabeli w JS questionmark.gif Czy to naprawdę wymaga takiego główkowania, może jest coś prostego questionmark.gif

Pozdrawiam






Podbijam temat, bo zniknął z pierwszej strony (pewnie nie chciało się Wam czytać moich wypocin)
Pytanie krótkie :
Tak mogę przypisać sobie zmienną
  1. <script type="text/javascript">
  2. var zmienna= <?php echo $zmienna; ?>
  3. </script>


a jak analogicznie mogę przypisać tablicę questionmark.gif
Robiąc tak :
var jeden New Array ("<?php echo $tablica; ?>");
Dostaje informację "Array", odwołując się do indeksu (nie mogę podstawić zmiennej sterującej z JS questionmark.gif


--------------------
---------------------------
"Jeżeli trzeci dzień z rzędu nie chce Ci się pracować tzn że dziś jest ŚRODA !
Algorytmy , Programowanie , Tworzenie WWW - SPRAWDŹ
Go to the top of the page
+Quote Post
Fifi209
post 3.02.2010, 16:34:51
Post #2





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

Ostrzeżenie: (0%)
-----


Nie chcę używać JSON lub XML, gdyż?

Możesz spróbować zserializować tablicę w php i wykonać coś odwrotnego w JS. (z tym, że nie wiem czy coś takiego jest w JS)
ew. napiszesz funkcję w PHP, która utworzy tablicę w JS - bo to troszkę inna składnia jednak.

Ten post edytował fifi209 3.02.2010, 16:35:00


--------------------
Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP
Go to the top of the page
+Quote Post
ferrero2
post 3.02.2010, 16:49:53
Post #3





Grupa: Zarejestrowani
Postów: 171
Pomógł: 32
Dołączył: 5.08.2008
Skąd: Lublin

Ostrzeżenie: (0%)
-----


Gdyż uważam, że jest to zbyt dużo roboty dla małego fragmentu aplikacji.
Znasz prosty sposób przepisania takiej tablicy za pomocą XML lub JSON questionmark.gif
Jakiś link / skrypt questionmark.gif


--------------------
---------------------------
"Jeżeli trzeci dzień z rzędu nie chce Ci się pracować tzn że dziś jest ŚRODA !
Algorytmy , Programowanie , Tworzenie WWW - SPRAWDŹ
Go to the top of the page
+Quote Post
Fifi209
post 3.02.2010, 16:55:20
Post #4





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

Ostrzeżenie: (0%)
-----


Jak zamienić tablicę na JSON?

W PHP:
json_encode

A w Javascript już możesz na tym operować z tego co pamiętam. smile.gif


--------------------
Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP
Go to the top of the page
+Quote Post
Scalak
post 3.02.2010, 20:09:10
Post #5





Grupa: Zarejestrowani
Postów: 63
Pomógł: 16
Dołączył: 21.03.2009

Ostrzeżenie: (0%)
-----


może to Ci pomoże:
  1. <?
  2. $zmienna=Array('ala','ma','kota');
  3. print "<script type=\"text/javascript\">";
  4. print "var zmienna=new Array()\n";
  5. foreach($zmienna as $tym) print "zmienna.push('$tym')\n";
  6.  
  7. print "alert(zmienna)";
  8. print "</script>";
  9. ?>
Go to the top of the page
+Quote Post
ferrero2
post 4.02.2010, 10:05:15
Post #6





Grupa: Zarejestrowani
Postów: 171
Pomógł: 32
Dołączył: 5.08.2008
Skąd: Lublin

Ostrzeżenie: (0%)
-----


Zajebiście Scalak, o to mie sie rozchodzi tongue.gif.


--------------------
---------------------------
"Jeżeli trzeci dzień z rzędu nie chce Ci się pracować tzn że dziś jest ŚRODA !
Algorytmy , Programowanie , Tworzenie WWW - SPRAWDŹ
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 26.04.2025 - 00:51