2010-04-18 15 views
5

Per esempio ho un array PHP, come questobisogno di scorrere un array PHP in JavaScript

<?php $s= array('a','b','c','d','e','f') ; ?> 

E ho bisogno di scorrere in JavaScript, tutte le idee come posso farlo?

for (i=0 ; i < <?php echo sizeof($s) ?> ; i++) { 
document.write('<?php echo $s [somehow need to get the 'i' value into here] ?>'); 
} 

Qualche suggerimento? Grazie!

risposta

3
<?php 
$s= array('a','b','c','d','e','f') ; 
?> 

<?php foreach($s as $a){ ?> 

document.write('<?=$a?>'); 

<?php } ?> 

Non testato ma questo è un modo.

+0

grazie amico, funziona così! –

+0

var lat = new Array(); var long = new Array(); Lat.push (''); long.push ('');

+0

I * davvero * spero che tu non * solo * stampi i vars ... (hai 'echo' per quello) – mpen

3

Sì .... echo il tuo array PHP come array JavaScript prima, quindi esegui il loop su di esso. Non provare a ripetere il ciclo sul tuo array PHP; non puoi

+0

un ... come faccio eco il mio array PHP in un array JS? –

+0

'json_encode()' sarebbe un buon inizio, se disponibile. – ZeissS

+1

questo è così triste: D –

4

Javascript e PHP non possono essere combinati. Sono due programmi completamente diversi che comunicano solo vagamente. Il PHP viene eseguito sul computer server e genera l'HTML. Il javascript gira sul computer client nel browser web e agisce su quell'HTML. Se è necessario spostare le informazioni da PHP a Javscript in qualche modo, è necessario memorizzarle nell'HTML e avere il Javascript accedervi tramite quell'HTML. Se hai bisogno di fare il contrario, sposta le informazioni da Javascript a PHP, chiama JavaScript una pagina PHP con una stringa di query.

Un modo per posizionare le informazioni nell'array da qualche parte dove Javascript può raggiungerlo, sarebbe quello di farlo risuonare in un div nascosto. O in una serie di spazi vuoti o solo una lista separata da virgole. Quindi puoi estrarlo dal DOM.

Ad esempio:

<div style="display: none;" id="myArray"> 
<?php 
echo '<span id="myArray.count">'.sizeof($s).'</span>'; 
for ($i = 0; $i < sizeof($s); $i++) { 
    echo '<span id="myArray.'.$i.'">'.$s[$i].'</span>'; 
} 
?> 
</div> 

Poi nel Javascript è possibile accedere alla matrice nel DOM:

var myArray = new Array(); 

for(i = 0; i < document.getElementById('myArray.count').innerHTML; i++) { 
    document.write(document.getElementById('myArray.'+i).innerHTML); 
} 

Disclaimer: codice non testato, e io non ho il tempo per perfezionarlo proprio adesso. Se qualcun altro vuole commentare o modificare per correggere eventuali errori sentiti libero :)

+0

"comunica vagamente", eh? PHP è una tecnologia basata su modelli, JS è un modello di testo come HTML/CSS. Lascia che PHP stampi JS as-is e lasci che il browser esegua il lavoro di interpretazione/esecuzione di JS. Non è necessario necessariamente stamparlo su un div nascosto o così via. Ad esempio, ' 'è sufficiente per assegnare una variabile PHP come se fosse una variabile JS. – BalusC

7

Prima del tuo ehco/print oppure il tuo php array ci assicuriamo che sia in sintassi JavaScript.

<?php 
$s=array('a','b','c','d','e','f'); 
$s_to_json=json_encode((array)$s); 
?> 

<script type="text/javascript"> 

var fromPHP=<? echo $s_to_json ?>; 

for (i=0; i<fromPHP.length; i++) { 

yourValue=fromPHP[i]; 

} 

</script> 
0
<?php $religion = array('1'=>'hindu','2'=>'sikh','3'=>'muslim'); ?> 

<script> 

    <select name="religion_name"> 
    <?php foreach ($religion as $key => $value) 
    { echo" <option value=$key> $value->name </option>"; } ?> 
    </select> 

</script> 
+0

Si prega di aggiungere qualche spiegazione. – Gammer