PHP tömb átadása JS-nek?

PHP tömb átadása JS-nek?
2013-06-30T13:44:06+02:00
2013-06-30T14:29:59+02:00
2022-11-29T07:41:59+01:00
szilárd
Sziasztok,

Van egy több dimenziós tömböm (PHP). Amit át szeretnék adni JS-nek. Ez elvileg sikerült is.
<script> $(document).ready(function() { var tamogatok = <?php echo json_encode($tamogatok_tomb)?>; alert(tamogatok[0][0]); console.log(tamogatok); }); </script>
Ha itt ki alertezem a tomb első elemét oké minden. De én nem az index.php-ba akarom megírni a JS-es függvényem ami ezzel a tömbbel hajt végre bizonyos dolgokat. Csinálok egy JS függvényt, akkor a függvényen belül nem tudom "használni" ezt a tömböt.
Pl.: ha a függvényen belül azt írom, hogy alert(tamogatok[0][0]);
akkor ezt a hiba üzenetet írja: Uncaught TypeError: Cannot read property '0' of undefined.

Miért? :S

Válaszaitokat előre is köszönöm.

Üdvözlettel: egy kezdő web-programozó.
Mutasd a teljes hozzászólást!
Csatolt állomány
Szia.
Ennek több oka is lehet.
De alapvetően az is érdekes, hogy kiír valamit az alert-re.

1. Először is ne tedd be egy az egyben a tömböd az objektumba, hanem csak egy elemként.
Így:

var res = <?php echo json_encode( array('tamogatok'=>$tamogatok_tomb) ); ?>;

2. Ekkor még nem tömb szerepel a js -ben, csak egy json string, azaz karakter sorozat.
Akkor tudod használni, ha vissza alakítod objektummá, így:

var obj = JSON.parse( res );

3. Ezután már a kódban elérheted a benne lévő tömböt, végigmehetsz rajta for-al vagy egyéb módon használhatod fel, így:

var tamogatok = obj.tamogatok; for( var i = 0; i < tamogatok.length; i++ ) console.log( tamogatok[i] );
Mutasd a teljes hozzászólást!

Tetszett amit olvastál? Szeretnél a jövőben is értesülni a hasonló érdekességekről?
abcd