2010-04-18 12 views
5

Por ejemplo, tengo una matriz PHP, como estenecesito colocar a través de una matriz PHP en JavaScript

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

Y necesito bucle a través de él en JavaScript, alguna idea de cómo puedo hacer eso?

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

¿Alguna sugerencia? ¡Gracias!

Respuesta

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

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

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

<?php } ?> 

No probado, pero eso es una forma.

+0

gracias hombre, funciona de esa manera! –

+0

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

+0

I * realmente * espero que no * solo * imprima los vars ... (tiene 'echo' para eso) – mpen

3

Sí .... resuena su matriz de PHP como una matriz de JavaScript primero, y luego recorra eso. No intentes recorrer tu matriz PHP; no puedes

+0

un ... ¿cómo lo echo un vistazo a mi matriz PHP en una matriz de JS? –

+0

'json_encode()' sería un buen comienzo, si está disponible. – ZeissS

+1

esto es muy triste: D –

4

Javascript y PHP no se pueden combinar. Son dos programas completamente diferentes que se comunican solo vagamente. El PHP se ejecuta en la computadora del servidor y genera el HTML. El javascript se ejecuta en la computadora cliente en el navegador web y actúa sobre ese HTML. Si necesita mover información de PHP a Javscript de alguna manera, entonces tiene que almacenarla en el HTML y hacer que el Javascript acceda a través de ese HTML. Si necesita hacer lo contrario, mueva la información de Javascript a PHP, haga que el Javascript llame a una página PHP con una cadena de consulta.

Una forma de colocar la información en su matriz en algún lugar donde Javascript pueda acceder a ella, sería hacerla eco en un div oculto. Ya sea en una serie de intervalos ided o simplemente en una lista separada por comas. Entonces puedes sacarlo del DOM.

Por ejemplo:

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

Luego, en el Javascript se puede acceder a la matriz en el DOM:

var myArray = new Array(); 

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

Exención de responsabilidad: Código no probado, y no tengo el tiempo para perfeccionarlo ahora mismo. Si alguien más quiere comentar o editar para corregir cualquier error, siéntase libre :)

+0

" comunicar vagamente ", ¿eh? PHP es una tecnología de plantillas, JS es un texto de plantilla como HTML/CSS. Simplemente deje PHP imprimir JS como está y luego deje que el navegador web haga el trabajo de interpretar/ejecutar JS. No es necesario que necesariamente lo imprima en un div oculto. Solo por ejemplo ' 'es suficiente para asignar una variable PHP como si fuera una variable JS. – BalusC

7

Antes de su ehco/print o bien su matriz php, nos aseguramos de que esté en la sintaxis de 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

Agregue algunas explicaciones. – Gammer

Cuestiones relacionadas