Foros del Web » Programando para Internet » PHP »

recoger datos de un select option multiple creado dinamicamente

Estas en el tema de recoger datos de un select option multiple creado dinamicamente en el foro de PHP en Foros del Web. Si genero un select option multiple asi: <select name="nombre'.$num.'[]" multiple>": Esto si funciona me genera nombre.0,nombre.1,...... nombre.n como lo recojo en un POST??? esque lo ...
  #1 (permalink)  
Antiguo 08/06/2005, 03:25
 
Fecha de Ingreso: abril-2005
Mensajes: 171
Antigüedad: 19 años
Puntos: 0
NEW PROBLEM!!! recoger datos de un select option multiple creado dinamicamente

Si genero un select option multiple asi:

<select name="nombre'.$num.'[]" multiple>":

Esto si funciona me genera nombre.0,nombre.1,...... nombre.n

como lo recojo en un POST??? esque lo hago como si se tratase de un POST de un select multiple del tipo <select name="nombre[]" multiple>": y me da error:

PHP Parse error: parse error, unexpected T_VARIABLE, expecting ']' in c:\.............ruta.............

GRACIAS y lo siento porque esto ya lo tengo puesto en otro POST (generar select option multiple) pero asi tiene un titulo mas significativo.

GRACIAS otra vez y DISCULPAS

Última edición por draco23800; 09/06/2005 a las 04:14
  #2 (permalink)  
Antiguo 08/06/2005, 03:55
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 19 años, 8 meses
Puntos: 102
Cita:
Iniciado por draco23800
GRACIAS y lo siento porque esto ya lo tengo puesto en otro POST (generar select option multiple) pero asi tiene un titulo mas significativo.
Si el motivo fué el título... pudiste editarlo ...

Procuremos seguir los temas originales: http://www.forosdelweb.com/f18/generar-varios-select-option-multiples-305465/

__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #3 (permalink)  
Antiguo 08/06/2005, 04:07
 
Fecha de Ingreso: abril-2005
Mensajes: 171
Antigüedad: 19 años
Puntos: 0
La consulta con el titulo original ya la he resuelto ahora tengo que resolver esta, si lo puse otra vez es para que alguien conteste si sabe como claro.

GRACIAS
  #4 (permalink)  
Antiguo 08/06/2005, 04:21
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 19 años, 8 meses
Puntos: 102
... ok, de acuerdo.... pero si tu problema ahora es el recojerlo, y tienes un error que muestras perfectamente... ¿dónde está el código??...

¿seguro te genera un name="nombre.1[]", name="nombre.2[]", etc.??.. no debería tener que mostrarte los puntos .

Ahora.. ¿cómo lo recojes???; como cualquier otro select multiple (recibez una matriz): $_POST['nombre1']['indice']. Puedes hacer un ciclo con for() ó foreach(), lo que mejor te acomode.

Prueba esto:
Código PHP:
<?php
if(isset($_POST['Submit'])) {
    echo 
"Por un FOR <br>";
    for(
$i=0$i<count($_POST['select']); $i++)
        echo 
"Índice= $i   -> Valor= ".$_POST['select'][$i]."<br>";
    echo 
"<br>Por un FOREACH<br>";
    foreach(
$_POST['select'] as $indice => $valor)
        echo 
"Índice= $indice   -> Valor= $valor<br>";
}
?>
<form action="<?=$_SERVER['PHP_SELF'?>" method="post">
<select name="select[]" size="3" multiple>
  <option value="op1">opcion1</option>
  <option value="op2">opcion2</option>
  <option value="op3">opcion3</option>
</select>
<input type="submit" name="Submit" value="Enviar">
</form>
.. de hecho igual te sirve un while() ...
Si sabes hacer esto (así parece) no entiendo la pregunta (ni la situación de esto). Podrías hacer un ciclo dentro de otro ciclo... ... ó usar una matriz bidimencional .. ....
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #5 (permalink)  
Antiguo 08/06/2005, 04:57
 
Fecha de Ingreso: abril-2005
Mensajes: 171
Antigüedad: 19 años
Puntos: 0
El siguiente codigo esta dentro de una funcion que se encarga de generar los selct options

Código PHP:
$consulta=("SELECT dni,nombre,apellidos FROM personal ORDER BY dni");
$resultado=mysql_query($consulta);
<
select name="personas'.$numero.'[]\" multiple>");//num es un argumento de la funcion, sera 0,1,2.....
$i=0;
while (
$datos=mysql_fetch_Array($resultado)) {
     if (
$i==0){
             echo (
"<option value=\"$datos[dni]\" selected >$datos[nombre]     $datos[apellidos]</option>");
             
$i=1;
  }
    else
       echo (
"<option value=\"$datos[dni]\">$datos[nombre] $datos[apellidos </option>");
}
echo (
"</select></center>"); 
En la pagina php donde se me generan estos select option (por medio de llamadas a la funcion anterior)si das a "ver codigo" aparece :

Código PHP:
....codigo...<select name="personas'.0.'[]" multiple><option value......codigo....//(asi para tantos select options generados como haya) 
y lo recojo:

if (empty($_POST[.......]))

donde los ..... es donde tengo el problema, he probado:
personas'.$numero.'
personas.$numero
y alguna convinacion mas con el error referido anteriormente

Cita:
Originalmete escrito por draco23800 PHP Parse error: parse error, unexpected T_VARIABLE, expecting ']' in c:\.............ruta.............
Entonces para recogerlo seria
if (empty($_POST['personas'][$i]))
dentro de un bucle ???????

GRACIAS
  #6 (permalink)  
Antiguo 08/06/2005, 05:17
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 19 años, 8 meses
Puntos: 102
Haz probado con:
Código PHP:
$indice="personas".$numero;
if(empty(
$_POST["$indice"])) { 
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #7 (permalink)  
Antiguo 08/06/2005, 10:56
 
Fecha de Ingreso: abril-2005
Mensajes: 171
Antigüedad: 19 años
Puntos: 0
eso va todo seguido no???
  #8 (permalink)  
Antiguo 08/06/2005, 23:04
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 19 años, 8 meses
Puntos: 102
¿?... sí...
Ok, no lo expliqué... sorry. Lo que pasa es que no puedes "concatenar" dentro de una matríz; lo que intentabas hacer con $_POST['personas'.$numero] (según entendí)... entonces lo que debes hacer es primero hacer esa concatenación y asignarsela a una variable y es esa variable directa la que haz de ocupar como indice de la matríz (el código que dejé enteriormente). Solo seguimos con lo que tienes...

Saludos...
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #9 (permalink)  
Antiguo 09/06/2005, 00:37
 
Fecha de Ingreso: abril-2005
Mensajes: 171
Antigüedad: 19 años
Puntos: 0
Y al generar el select option tambien sera mejor ponerlo asi no para que luego si exista al comprobar con empty no???

ahora mismo aunque seleccione algun elemento me dice que no existe.

GRACIAS
  #10 (permalink)  
Antiguo 09/06/2005, 00:47
 
Fecha de Ingreso: abril-2005
Mensajes: 171
Antigüedad: 19 años
Puntos: 0
aaaaaaaaaaaahhh

Si pongo para generar el select option de la siguiente forma:

Código PHP:
$personas="personas".$numero;
<
select name=$personas[] multiple>"); 
o

Código PHP:
$personas="personas".$numero;
<
select name="$personas[]\" multiple>"); 
me da el siguiente error:

PHP Parse error: parse error, unexpected ']', expecting T_STRING or T_VARIABLE or T_NUM_STRING in C:\....ruta on line x (la del select name)
  #11 (permalink)  
Antiguo 09/06/2005, 01:01
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 19 años, 8 meses
Puntos: 102
... Generar y recoger son cosas distintas... y totalmente independientes...

Según entendí (aunque no entiendo el objetivo de todo esto...) ya tenías resuelto el cómo imprimir tus listbox (siguen siendo listbox si son multiple?? ) y como resultado tenías:
Código HTML:
<select name="personas1[]" multiple>
  <option value="dni">Nombre Apellidos</option>
  ......
</select>

<select name="personas2[]" multiple>
  <option value="dni">Nombre Apellidos</option>
  ......
</select>

.....

<select name="personasN[]" multiple>
  <option value="dni">Nombre Apellidos</option>
  ......
</select> 
Entonces, dices, para recojer necesitas algo como:
Código PHP:
$_POST['personasN'
Lo cuál es cierto... pero quieres igual generar ese "personasN" dinámicamente.. e intentaste hacer:
Código PHP:
$_POST['personas'.$numero];
// donde 'N' es $numero 
... "la idea" pareciera estar bien, pero yo te digo que la forma no, que necesitas hacer una "pre-concatenación" de esta manera:
Código PHP:
 $indice="personas".$numero// Donde 'N' es $numero
// igual sería válido $indice="personas$numero";
// Entonces $indice será igual a "personasN" y podrás usarlo como índice (key) de tu matríz
$_POST["$indice"]; // entonces tendrías el $_POST["personasN"] que buscas... 
....

PD: El error pareciera es por las comillas.... tan solo vé cómo ilumina el código .. haces un echo, supongo (no lo muestras).
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"

Última edición por jam1138; 09/06/2005 a las 01:07
  #12 (permalink)  
Antiguo 09/06/2005, 01:05
 
Fecha de Ingreso: abril-2005
Mensajes: 171
Antigüedad: 19 años
Puntos: 0
Solucionado el error del anterior mensaje poniendo:

Código PHP:
$personas="personas".$numero;    
echo(
"<select name=\"'$personas'[]\" multiple>"); 
Pero me sigue sin reconocer el dato seleccionado , de echo me sale que no he seleccionado ningun seleccione ninguno(que es cuando me tiene que dar error de que no hay dato seleccionado) o seleccione todos

GRACIAS
  #13 (permalink)  
Antiguo 09/06/2005, 01:17
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 19 años, 8 meses
Puntos: 102
... me rindo... ¿cuál seleccionado??.. ahí estás mandando a imprimir el listbox... ¿quieres que aparesca una opción seleccionada por defecto??; agregale la palabra "selected" (esto es HTML):
Código HTML:
<option .... selected>Por defecto</option> 
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #14 (permalink)  
Antiguo 09/06/2005, 01:19
 
Fecha de Ingreso: abril-2005
Mensajes: 171
Antigüedad: 19 años
Puntos: 0
bien recapitulando. Lo del indice que me dices lo he entendido y muchas gracias

lo que pasa esque tengo el problema del anterior mensaje.

Cita:
Código PHP:
.......codigo.......
$personas="personas".$numero;
echo("<select name=\"'$personas'[]\" multiple>");
echo ("<option value....................</option>");
................options value........
</select>
.............codigo.....
Pero me sigue sin reconocer el dato seleccionado (uno que tiene valor selectes o bien el/los que el usuario seleccione) al validar me sale que no he seleccionado ninguno siempre, seleccione todos o no seleccione ninguno(que es cuando me tiene que dar error de que no hay dato seleccionado)
la comprobacion la realizo asi:

Código PHP:
$indice="personas".$numero;   
if (empty(
$_POST['$indice'])) 
El objeto de esto es asi a grandes resgos:

seleccionas un empleado en un formulario y pasas a pagina2.
en pagina2 muestra las funciones de ese empleado y para cada funcion un select option con el nombre del resto de empleados para seleccionar uno y darle esa funcion y pasas a pagina resultado

pagina resultado se valida que hay un dato seleccionado en cada select option y se insertan los datos.

Si los select option tubieran el mismo nombre solo me funcionaria para la ultima funcion.

GRACIAS

Última edición por draco23800; 09/06/2005 a las 01:42 Razón: aclaracion en el citado
  #15 (permalink)  
Antiguo 09/06/2005, 02:27
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 19 años, 8 meses
Puntos: 102
Cita:
Iniciado por draco23800
Si los select option tubieran el mismo nombre solo me funcionaria para la ultima funcion.
Pero no lo tienen... para eso hiciste el "personasN"... ¿?...
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #16 (permalink)  
Antiguo 09/06/2005, 02:40
 
Fecha de Ingreso: abril-2005
Mensajes: 171
Antigüedad: 19 años
Puntos: 0
Cita:
Originalmente Escrito por draco23800
Si los select option tubieran el mismo nombre solo me funcionaria para la ultima funcion.

Pero no lo tienen... para eso hiciste el "personasN"... ¿?...
completamente de acuerdo contigo.

Pero sigo con el problema de que no me reconoce ningun select option al comprobar.

GRACIAS
  #17 (permalink)  
Antiguo 09/06/2005, 02:49
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 19 años, 8 meses
Puntos: 102
pero es que no haz mostrado nada de eso!!!.. solo hablas de el cómo imprimirlo pero tu problema es del "otro lado"... el cómo recojerlos...

Adivinos no somos... pero ya se mencionó que $_POST es la matríz que contiene todos los elementos del formulario como índices (keys), a su véz dichos indices serán otra matriz (por en []) que igual tendrás que recorrer para llegar a los verdaderos valores que se enviaron... Dicho de otra manera, tienes una matríz bidimensional...

Ya puse un script de cómo se recorrería una matriz simple... entonces, recuerda, tienes una matríz que están de otra matríz... ... adelante...

www.php.net/array
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #18 (permalink)  
Antiguo 09/06/2005, 03:05
 
Fecha de Ingreso: abril-2005
Mensajes: 171
Antigüedad: 19 años
Puntos: 0
Voy a recapitular porque creo que no nos estamos entendiendo.

Tengo a grandes rasgos:

Código PHP:
formulario.php
                     
....codigo   
<form action=resultado.php method=post>                  .......codigo
     
while (condicion)//es que mientras haya filas en una consulta a la Bd BUCLE 1
                  
..........codigo
llamada a una funcion para rellenar los select option le paso numero y criterio seleccion 
(ya)
//se guarda i en un imput hidden, i es el numero de veces qeu se llama a la funcin y por tanto el numero de select options generados             
............codigo
}
boton enviar
</form
Código PHP:
function rellena_select_option($num,$ya){

 
$consulta=("SELECT dni,nombre,apellidos FROM personal WHERE dni<>\"$ya\" ORDER BY dni");
 
$resultado=mysql_query($consulta);
 
$personas="personas".$numero;    
echo(
"<br> <center><b>EMPLEADO/OS</b></center> 
  <br><center><select name=\"'$personas'[]\" multiple>"
);
$i=0;
 while (
$datos=mysql_fetch_Array($resultado)) { //2º bucle para generar datos   if ($i==0){
  
echo ("<option value=\"$datos[dni]\" selected >$datos[nombre]                 $datos[apellidos]</option>");
     
$i=1;
}
else
   echo (
"<option value=\"$datos[dni]\">$datos[nombre]                 $datos[apellidos]</option>");
}  
               echo (
"</select></center>");

Y la pagina de validacion es:
Código PHP:
resultado.php

.........codigo..........
if (isset(
$_POST['enviar'])){
$close=0;
$i=0;
$indice="personas".$i;
while ((
$i<=$_POST['i']) and ($close==0)){
     if (empty(
$_POST['$indice']))                                  $close=1;
}
    if (
$close==1){
                      echo (
"error no hay datos seleccionados");
            
........
codigo........ 
El problema es que quite el dato seleccionado por defecto o seleccione todas las opciones me muestra en error de que no hay datos seleccionados

GRACIAS

Última edición por draco23800; 09/06/2005 a las 05:49 Razón: aclaraciones al codigo,
  #19 (permalink)  
Antiguo 09/06/2005, 04:09
 
Fecha de Ingreso: abril-2005
Mensajes: 171
Antigüedad: 19 años
Puntos: 0
new problem!!!!!!!

Encontrado el problema, se me produce otro problema:

Primero el problema es:

- Por la forma de generar el select option el nombre del array es 'persona1','persona2','personaN' (con comillas incluidas) y al comprobar el nombre $indice (lo que tu me pusiste) es persona1, persona2, personaN por lo que no son iguales.

Y ahi es donde se me genera el nuevo problema al que le puedo dar dos soluciones que no me funcionan ninguna de ellas.

1- Si genero los select options asi:
Código PHP:
$personas="personas".$numero;     
      <
select name="$personas[]\" multiple>"); //sin las comillas 
me da un error T_STRING VARIABLE o algo asi

2- Añadir las comillas a la varible indice de dos formas:
1- $indice='"personas".$i' ;
if (empty($_POST['$indice'])){
...........................
indice pasa a ser personas.$i en vez de personas1,personas2.... logico lo haces otra vez string por lo que sigue sin valer
2- $indice=\'"personas".$i\' ;
if (empty($_POST['$indice'])){
...........................
Unexpected character in input: '\' (ASCII=92) state=1 in C:\ ruta x on linea y
PHP Parse error: parse error, unexpected T_STRING in C:\ruta x linea y


osea mi pregunta es:
Como puedo poner el nombre de una variable al select oprion
O bien como puedo añadir el simbolo ' al nombre del indice


GRACIAS

Última edición por draco23800; 09/06/2005 a las 04:27
  #20 (permalink)  
Antiguo 09/06/2005, 05:10
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 19 años, 8 meses
Puntos: 102
Cita:
Iniciado por draco23800
Por la forma de generar el select option el nombre del array es 'persona1','persona2','personaN' (con comillas incluidas) y al comprobar el nombre $indice (lo que tu me pusiste) es persona1, persona2, personaN por lo que no son iguales.
... ¿de dónde sacaste esa conclusión??.. es erronea.. y en todo caso sería:
Código PHP:
$indice="\'personas".$i."\'"
Ahora... no veo que hagas el ciclo dentro de ciclo que te dije... y no entiendo el porqué de $_POST['i'] que tienes...

Supongo esto te ayudará a entenderlo mejor:
Código PHP:
<form method="post" action="<?=$_SERVER['PHP_SELF'?>">
Cantidad: <input name="cantidad" type="text" size="4">
    <input type="submit" value="Generar">
</form>
<?php
if(isset($_POST['cantidad'])) {
    echo 
"<form action=\"".$_SERVER['PHP_SELF']."\" method=\"post\">";
    echo 
"<input type=\"hidden\" name=\"cantidad\" value=\"".$_POST['cantidad']."\">"// solo para conservarlo
    
for($i=0$i<$_POST['cantidad']; $i++) { // generamos los listbox
        
echo "<select name=\"select".$i."[]\" size=\"3\" multiple>";
        for (
$l=a$l<'e'$l++) // generamos 4 opciones
            
echo "<option value=\"op$i$l\">Opción $i-$l</option>";
        echo 
"</select>&nbsp;&nbsp;";
    }
    echo 
"<input type=\"submit\" name=\"Submit\" value=\"Ver Resultados\">";
    echo 
"</form>";

    if(isset(
$_POST['Submit'])) { // Recojemos los resultados
    // Recordemos que $_POST contiene TODOS los elementos del formulario
        
unset($_POST['Submit']); // Podemos quitar los elementos que no queremos
        
echo "<table border=\"1\"><tr><td>Valores Recojidos</td><td>Pertenencia</td><td>En índice</td></tr>";
            foreach(
$_POST as $campo => $elementos// recorremos la matriz $_POST
                
if($campo!="cantidad"// ó podemos ignorar los elementos que no queremos
                    
foreach($elementos as $indice => $valor// $elementos son los listbox que a su vez son matricez
                         
echo "<tr><td>$valor</td><td>$campo</td><td>$indice</td></tr>";
        echo 
"</table>";
    }
}
?>
Sé que lo de "generar" se pudo hacer con JS pero no es el tema aquí.. solo es para simluar los resultados de tu consulta...

__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #21 (permalink)  
Antiguo 09/06/2005, 05:56
 
Fecha de Ingreso: abril-2005
Mensajes: 171
Antigüedad: 19 años
Puntos: 0
La conclusion la saco de que si imprimo el nombrede las variables me dice que los select optios se llaman textualmente 'personas1' , 'personas2', 'personasN'.

He editado el mensaje mio anterior para indicarte los dos bucles al generar los select options, que repito me los genera. El problema es al hacer el if (isset($_POST['$indice']))

Porque no consigo que el nombre sea igual por las comillas simples.

Cita:
Originalmente Escrito por jam1138
¿de dónde sacaste esa conclusión??.. es erronea.. y en todo caso sería:
Código PHP:
$indice="\'personas".$i."\'";
A que conclusion te refieres????

a esto???
Cita:
Originalmente Escrito por jam1138
Haz probado con:
Código PHP:
$indice="personas".$numero;
if(empty($_POST["$indice"])) {
GRACIAS
  #22 (permalink)  
Antiguo 09/06/2005, 06:09
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 19 años, 8 meses
Puntos: 102
Cita:
Iniciado por draco23800
A que conclusion te refieres????
Tú mismo la mencionas...
Cita:
Iniciado por draco23800
La conclusion la saco de que si imprimo el nombrede las variables me dice que los select optios se llaman textualmente 'personas1' , 'personas2', 'personasN'.
... cómo lo imprimes???... es un ERROR tremendo que manejes nombres (indicadores) con comillas... Pero volvemos: hablas de nuevo sobre "cómo generar tus selects" cuando tu duda es sobre "cómo recojer los valores"... ¿¿¿¿¿????
Cita:
El problema es al hacer el if (isset($_POST['$indice']))
Sí ves el código que yo te puse... usé comillas dobles... .

... La verdad creo el script que te dejé anteriormente debería aclararte muchas cosas... genero y recojo dichos listbox...

Edito:
PD: ... si los peazos de código que pusiste anteriormente pertenecen a un mismo archivo.. ¿por qué no lo "armas" de manera adecuada???...
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"

Última edición por jam1138; 09/06/2005 a las 23:50
  #23 (permalink)  
Antiguo 09/06/2005, 06:27
 
Fecha de Ingreso: abril-2005
Mensajes: 171
Antigüedad: 19 años
Puntos: 0
Lo que hice fue localizarte los 2 bucles queme mencionabas, aclararte de donde viene $_POST[i] situado en el archivo resultado.php y poner una linea que me habia comido (el primer bucle de generar los select options, que de todas formas si no lo pones el numero que pasas a la funcion seria el valor de i con lo que te generaria un unico select option por el hecho de no estar en un bucle)

Bien si lo de parentesis va ha liar mas las cosas olvidate de ello .

Te hablo de gerar los select options porque REPITO no consigo que el nombre al generar el select option sea el mismo que al comprobar si existe o/y tiene datos.

Si pongo las comillas simples al nombre del select option es por el unico motivo de que sin ellas me da error

por ese motivo como puedo luego montar en nombre para ponerlo dentro del $_POST y asi poder comprobar si existe,si tiene datos o simplemente manejar esos datos?????????????

GRACIAS
  #24 (permalink)  
Antiguo 09/06/2005, 23:47
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 19 años, 8 meses
Puntos: 102
pero si ya se ha dicho muuuchas veces... ...
Código PHP:
<form method="post" action="<?=$_SERVER['PHP_SELF'?>">
Cantidad: <input name="cantidad" type="text" size="4">
    <input type="submit" value="Generar">
</form>
<?php
if(isset($_POST['cantidad'])) {
    echo 
"<form action=\"".$_SERVER['PHP_SELF']."\" method=\"post\">";
    echo 
"<input type=\"hidden\" name=\"cantidad\" value=\"".$_POST['cantidad']."\">"// solo para conservarlo
    
for($i=0$i<$_POST['cantidad']; $i++) { // generamos los listbox
        
echo "<select name=\"select".$i."[]\" size=\"3\" multiple>";
        for (
$l='a'$l<'e'$l++) // generamos 4 opciones
            
echo "<option value=\"op$i$l\">Opción $i-$l</option>";
        echo 
"</select>&nbsp;&nbsp;";
    }
    echo 
"<input type=\"submit\" name=\"Submit\" value=\"Ver Resultados\">";
    echo 
"</form>";

    if(isset(
$_POST['Submit'])) {
        for(
$i=0$i<$_POST['cantidad']; $i++) {
///////////////////////////////////////////////
            
$indice="select".$i;
            if(!isset(
$_POST["$indice"])) echo "No se recibieron elementos de la matríz $indice.<br>";
        }
    }
}
?>
... cero y van tres diferentes formas que he mencionado...
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
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 01:28.