Foros del Web » Programando para Internet » Javascript »

array desde php a javascript

Estas en el tema de array desde php a javascript en el foro de Javascript en Foros del Web. hola.. tengo el siguiente problema.. aqui tengo un bosquejo... desde php mando el siguiente valor @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código PHP: Ver original $i = 1 ; ...
  #1 (permalink)  
Antiguo 15/01/2010, 15:06
 
Fecha de Ingreso: noviembre-2009
Ubicación: Barranquilla
Mensajes: 54
Antigüedad: 14 años, 5 meses
Puntos: 0
Pregunta array desde php a javascript

hola..
tengo el siguiente problema.. aqui tengo un bosquejo...
desde php mando el siguiente valor
Código PHP:
Ver original
  1. $i=1;
  2. while($i<=4){
  3. $array_codigo_material[$i]=$cod_material;
  4.  
  5. $i++
  6. }
y en un input mando ese array
Código HTML:
Ver original
  1. <input type="button"  value="agregar" onclick="javascript:enviarDatosMaterial('<?=$array_codigo_material?>');"/>

..
luego en el javascript lo recibo asi
Código Javascript:
Ver original
  1. function enviarDatosMaterial(codigo_material){
  2.   var i=1;
  3.   cod_mat=codigo_material[i].value;
  4. alert(cod_mat);
  5. ....
  6. }

como puedo realizar esto?..
el resultado que me aroja es en el javascript.. pues el alert = undefined

gracias!
  #2 (permalink)  
Antiguo 15/01/2010, 15:44
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: array desde php a javascript

te muestra undefined porque codigo_material[i] en javascript no tiene la propiedad value. si muestras un alert de codigo_material te daras cuenta que mostrara el string Array. ¿por que? si haces echo de un array en php, php imprime el tipo de valor, o sea Array. por tanto, en javascript lo recibes como un string en lugar de un array propiamente dicho. si quieres enviar un array de php a javascript, tienes que convertir ese array en una representacion que javascript lo pueda comprender. por ejemplo, una posible forma es la siguiente
Código:
'<?php echo implode($array_codigo_material) ?>'.split(',')
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #3 (permalink)  
Antiguo 15/01/2010, 16:05
Avatar de masterojitos  
Fecha de Ingreso: julio-2008
Ubicación: Lima Callao Chucuito
Mensajes: 1.931
Antigüedad: 15 años, 9 meses
Puntos: 105
Respuesta: array desde php a javascript

este implode
implode($array_codigo_material)
esta mal por que no le pasas el parametro a unir............

prueba asi:
Código Javascript:
Ver original
  1. function enviarDatosMaterial(codigo_material){
  2.   var i=1;
  3.   cod_mat=codigo_material[i];
  4. alert(cod_mat);
  5. ....
  6. }

suerte.
__________________
Atte. MasterOjitos :ojotes:
Todo sobre Programación Web
Las ultimas tendencias en Efectos y Recursos Web: MasterOjitos Blog
  #4 (permalink)  
Antiguo 15/01/2010, 16:13
 
Fecha de Ingreso: noviembre-2009
Ubicación: Barranquilla
Mensajes: 54
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: array desde php a javascript

.. gracias por responder.. zerokilled
.. 1. estoy intentando con el implode.. de la siguiente forma pero me arroja un error..
creo que asi entendi..

Código PHP:
Ver original
  1. $array_1= implode($array_codigo_material).split(',');

y lo mando

Código HTML:
Ver original
  1. <input type="button"  value="agregar" onclick="javascript:enviarDatosMaterial('<?=$array_1?>','<?=$array_2?>','<?=$array_3?>');"/></td></tr></table></form>
..

bueno me dice error
**Warning: Wrong parameter count for split() in ......

2. .. gracias por responder masterojitos..
pero cuando uso sin el ".value"..
estoy mandando un numero por ahi y me sale el caracter "r" ...
  #5 (permalink)  
Antiguo 15/01/2010, 16:15
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: array desde php a javascript

@masterojitos,
segun la documentacion de php.net, el parametro del caracter a unir es opcional desde la version 4.3.0

@fercholopez,
edit,
el codigo que te mostre era lo que tienes que poner en el argumento de tu funcion en javascript.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.

Última edición por zerokilled; 15/01/2010 a las 16:21
  #6 (permalink)  
Antiguo 15/01/2010, 16:29
Avatar de masterojitos  
Fecha de Ingreso: julio-2008
Ubicación: Lima Callao Chucuito
Mensajes: 1.931
Antigüedad: 15 años, 9 meses
Puntos: 105
Respuesta: array desde php a javascript

amigo zerokilled, ps yo siempre he sabido que hay que pasarle un parametro, inclusive el primer parametro es el caracter a unir y no el arreglo..... puedes revisarlo aca: http://www.php.net/implode

amigo fercholopez..... disculpa... te respondi muy rapido sin probarlo...... aqui te dejo el codigo ya acabado para que lo acoples al tuyo.
Código PHP:
Ver original
  1. <?php
  2. $i=1;
  3. while($i<=4){
  4. $array_codigo_material[$i]="hola$i"; //creando un arreglo php.... lo cambias a tu comodidad
  5. $i++; //aca te falto un ;
  6. }
  7. ?>
Código Javascript:
Ver original
  1. <script>
  2. function enviarDatosMaterial(codigo_material){
  3. var codigo_material = codigo_material.split(","); //creo un arreglo apartir de la cadena de palabras separadas por ,
  4. alert(codigo_material[1]); //muestro el valor con el indice 1
  5. }
  6. </script>
Código PHP:
Ver original
  1. <!-- envio el parametro pero con implode lo separo en una cadena separando cada elemento con , -->
  2. <input type="button"  value="agregar" onclick="javascript:enviarDatosMaterial('<?php echo implode(",",$array_codigo_material); ?>');" />

Suerte.
__________________
Atte. MasterOjitos :ojotes:
Todo sobre Programación Web
Las ultimas tendencias en Efectos y Recursos Web: MasterOjitos Blog
  #7 (permalink)  
Antiguo 15/01/2010, 16:56
 
Fecha de Ingreso: noviembre-2009
Ubicación: Barranquilla
Mensajes: 54
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: array desde php a javascript

lo siento.. masterojitos .. pero lo hago lo que tu me dices.. y me sale lo mismo..

una aleta undefined.. :S
  #8 (permalink)  
Antiguo 15/01/2010, 17:13
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: array desde php a javascript

solo por curiosidad. desde php, ¿que tipo de valor contiene los elementos del array? por otro lado, dependiendo del tipo de valor, tambien puedes usar la funcion json_encode para convertir el array de php a un array de javascript.
Código:
onclick="enviarDatosMaterial(<?php echo json_encode($array_codigo_material));"
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #9 (permalink)  
Antiguo 15/01/2010, 17:48
Avatar de masterojitos  
Fecha de Ingreso: julio-2008
Ubicación: Lima Callao Chucuito
Mensajes: 1.931
Antigüedad: 15 años, 9 meses
Puntos: 105
Respuesta: array desde php a javascript

fercholopez, sabes copiar.....
por que el codigo tal cual como te lo he pasado si me funciona perfectamente........ te lo paso todo junto y en texto simple ok..........

Código PHP:
<?php
$i
=1;
while(
$i<=4){
$array_codigo_material[$i]="hola$i";
$i++;
}
?>
<script>
function enviarDatosMaterial(codigo_material){
var codigo_material = codigo_material.split(",");
alert(codigo_material[1]);
}
</script>
<input type="button"  value="agregar" onclick="javascript:enviarDatosMaterial('<?php echo implode(",",$array_codigo_material); ?>');" />
Suerte.
__________________
Atte. MasterOjitos :ojotes:
Todo sobre Programación Web
Las ultimas tendencias en Efectos y Recursos Web: MasterOjitos Blog
  #10 (permalink)  
Antiguo 18/01/2010, 09:19
 
Fecha de Ingreso: noviembre-2009
Ubicación: Barranquilla
Mensajes: 54
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: array desde php a javascript

-_-'..
muchas gracias por tu aclaracion.. funciona perfectamente..
pero mira.. este fin de semana decidi buscar una forma que se acoplara a las tecnologias que tengo..

cada valor lo almaceno de la siguiente forma en gestion_material.php

Código PHP:
Ver original
  1. while($rows = mysql_fetch_assoc($resultados)){
  2.     ?><td ><input name="valor_material[]" id="valor_material" value="<?= $rows['valor_material'] ?>"/></td>
  3. <?php
  4.     }
  5.  
  6. ......
  7.  
  8. <input type="button"  value="agregar" onclick="javascript:verificar(document.forms['nuevo_material']);"/>

esto lo mando a un ajax.js .. con la siguiente informacion:

Código Javascript:
Ver original
  1. function verificar(nuevo_material){
  2.  
  3.   divResultado = document.getElementById('resultado');
  4.  divResultado.innerHTML= '<img src="images/loadingAnimation.gif">';
  5.  
  6.   //valores de las cajas de texto
  7.  
  8.   cod_dpto=document.nuevo_material.codigo_dpto.value;
  9.   alert(cod_dpto); // solo para verificar si si recibe..
  10.  
  11.   for(i=0;i<=3;i++){
  12.  
  13.  cod_mat=document.nuevo_material.codigo_material[i].value;
  14.   val_mat=document.nuevo_material.valor_material[i].value;
  15.  
  16.   alert(cod_mat);
  17.   alert(val_mat);
  18.  
  19.   //instanciamos el objetoAjax
  20.   ajax=objetoAjax();
  21.   //uso del medoto POST
  22.   //archivo que realizará la operacion
  23.   //registro.php
  24.   ajax.open("POST", "material/verificar_crear_material.php",true);
  25.  
  26.   ajax.onreadystatechange=function() {
  27.   if (ajax.readyState==4) {
  28.   //mostrar resultados en esta capa
  29.   divResultado.innerHTML = ajax.responseText
  30.   //llamar a funcion para limpiar los inputs
  31.   LimpiarCamposMat();
  32.   }//cierre if
  33.   }
  34.  
  35.  
  36.   ajax.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
  37.   //enviando los valores
  38.  
  39.   ajax.send("codigo_material="+cod_mat+"&codigo_dpto="+cod_dpto+"&valor_material="+val_mat)
  40.  
  41.  }//cierre for
  42. }

.. me pasa lo siguiente..
en el script gestion_material.php
si me recibe los valores mandados en el arreglo..
..
pero al momento de que son mandados al archivo .js .. no funciona..

Etiquetas: php
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:18.