Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JavaScript][PHP]Przekazywanie tablicy 2 wymiarowej z php do javascript
Forum PHP.pl > Forum > Przedszkole
arrowman
Wymyśliłem sobie taką tablicę do celów testowych:

for( $i = 0; $i < 40; $i++)
{
$tab[$i][0] = $i;
$tab[$i][1] = 'nazwa'.$i;
$tab[$i][2] = 'Opis produktu.'.$i;
$tab[$i][3] = 'atrybut'.$i;
$tab[$i][4] = 'kategoria'.$i;
}


potem chce ją przekazać do java script:

<script type="text/javascript">
tab=[new Array(), new Array()];

<?php
for ( $i = 0; $i < 40; $i++ )
{
for ( $j = 0; $j < 4; $j++)
{
echo 'tab['.$i.']['.$j.'] = "'.$tab[$i][$j].'";';
}
}
?>

document.write ( tab[0][1] );
</script>


ale nic mi nie wyświetla ponieważ kod wygenerowany przez php wygląda
tak:
tab[0][0] = "0";tab[0][1] = "nazwa0";tab[0][2] = "Opis produktu.0";tab
[0][3] = "atrybut0";tab[1][0] = "1";tab[1][1] = "nazwa1";tab[1][2] =
"Opis produktu.1";...... itd.

czyli jest w jednej linii, a genialne javascript mimo , że są ";" to
nic nie rozumie... jak kopiuje ten wygenerowany kod i żywcem wkleję do
kodu w javascript robiąc entery, to działa...
Próbowałem z "\n" i "<br>", ale to nie robi mi enterów... oddzielałem instrukcje spacjami i też nic...

Po kiego wiec jest znak koca linii w javascript? Bo kompletnie tego
nie rozumiem...

Ok. Mam.
<script type="text/javascript">
tab=[new Array(), new Array()];
<?php
$jtab = 'tab=[';
for ( $i = 0; $i < 40; $i++ )
{
$jtab .= '[';
for ( $j = 0; $j < 4; $j++)
{
$jtab .= '"'.$tab[$i][$j].'"';
if ($j != 3) $jtab .= ',';
//echo 'tab['.$i.']['.$j.'] = "'.$tab[$i][$j].'"; ';

}
if ($i != 39)
$jtab .= '],';
else
$jtab .= ']';
}
$jtab .= '];';
echo $jtab;
?>
//tab = <?php //echo json_encode( $tab ); ?>;

document.write ( tab[0][1] );
</script>


Ale to i tak wygląda lamerskoa, to 1 i drugie, wszystko to lamersto...

Nie da się tego inaczej zrobić?
neverever
http://php.net/manual/pl/book.array.php zobacz w przykładach array2js
arrowman
To jest dla 1 wymiaru. Zresztą zrobione podobnym sposobem, na tym się wzorowałem:-)

Ale nie wierzę, że to jedyny sposób. Toż, to wygląda jak jakieś totalne lamerstwo... Nie tylko chodzi mi o jakość mojego pisania, ale o sposób też.
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.