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ć?