Foros del Web » Programando para Internet » Javascript »

Pasar array de JS a PHP

Estas en el tema de Pasar array de JS a PHP en el foro de Javascript en Foros del Web. Hola a todos, tengo un problema para pasar un array de JS a PHP ya he revisado varios ejemplos pero no he podido hacerlo funcionar, ...
  #1 (permalink)  
Antiguo 03/02/2011, 21:23
Avatar de xhido  
Fecha de Ingreso: enero-2011
Mensajes: 2
Antigüedad: 13 años, 3 meses
Puntos: 0
Sonrisa Pasar array de JS a PHP

Hola a todos, tengo un problema para pasar un array de JS a PHP ya he revisado varios ejemplos pero no he podido hacerlo funcionar, el objetivo es formar un array con los valores de un campo select (text y value) y luego construir una instrucion SQL en php con esta informacion.
Gracias de antemano.

Aca esta el codigo

Código PHP:
<script type="text/javascript"

function 
pasar() { 
    
obj=document.getElementById('sel1'); 
    if (
obj.selectedIndex==-1) return; 
  for (
i=0opt=obj.options[i]; i++) 
    if (
opt.selected) { 
        
valor=opt.value;
        
txt=obj.options[i].text
        
obj.options[i]=null
        
obj2=document.getElementById('sel2'); 
      if (
obj2.options[0].value=='-'
        
obj2.options[0]=null
        
opc = new Option(txt,valor); 
        eval(
obj2.options[obj2.options.length]=opc); 
  }     


var 
cadena= new Array();
function 
armaSql(){
    
    
obj=document.getElementById('select'); 
    for (
i=0opt=obj.options[i]; i++){
        
cadena[i] = opt.value "," obj.options[i].text;
    }
    var 
cadenaSql =cadena.join(',');
}

</script> 
Código HTML:
<form id="form1" method="post" action="pruebaLista3.php">
  <p>
    <label for="sel1">Origen:</label>
    <select name="sel" size="5" multiple="multiple" id="sel1">
      <option value="1">Uno</option>
      <option value="2">Dos</option>
      <option value="3">Tres</option>
      <option value="4">Cuatro</option>
      <option value="5">Cinco</option>
    </select>
    <label for="sel2"> Destino:</label>
    <select name="select[]" size="5" id="sel2">
      <option value='-'>-</option>
    </select>
  </p>
  <p>
    <input type="button" value="Pasar" onclick="pasar()" />
    <input type="submit" name="button" id="button" value="Enviar" onclick="armaSql()"/>
    <input name="cadenaSql" type="hidden">
  </p>
</form> 
Código PHP:
<?php
    
    
if (isset($_POST['button'])){        
        
$cadena $_POST["cadenaSql"];    
        
$tokenCadenaexplode(',',$cadena);
        
        for (
$i=0;$i<count($cadena);$i++){
            
$consulta $cadena[$i].$cadena[$i+1];
            echo 
$consulta;            
        }
    }
?>
  #2 (permalink)  
Antiguo 03/02/2011, 23:22
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Respuesta: Pasar array de JS a PHP

Hola:

Y porqué no pones en el select múltiple el juego de corchetes para que sea reconocido como array por php, y modificas los valúes adjuntando sus "text"...

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #3 (permalink)  
Antiguo 03/02/2011, 23:50
Avatar de xhido  
Fecha de Ingreso: enero-2011
Mensajes: 2
Antigüedad: 13 años, 3 meses
Puntos: 0
Respuesta: Pasar array de JS a PHP

Gracias por responder Caricatos
Pues la verdad ya he probado con los corchetes pero aun asi no funciona, no se si lo estoy haciendo mal...
  #4 (permalink)  
Antiguo 04/02/2011, 00:07
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Respuesta: Pasar array de JS a PHP

Hola:

Seguro que lo estás haciendo mal, porque te puedo asegurar que funciona, incluso si solo seleccionas un item, lo que llega a php es un array de un item...

ten en cuenta que php recibe $_POST["sel"] como un array si en el form lo declaras así:
<select name="sel[]">

El inconveniente podrás tenerlo en validaciones javascript, pero es un tema que hemos tratado mucho en estos foros y será fácil que encuentres información.

Tal vez si indicas como lo has hecho, te podremos orientar.

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo

Etiquetas: js, pasar, 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 05:46.