Foros del Web » Programando para Internet » PHP »

Problemas al capturar elementos de un formulario

Estas en el tema de Problemas al capturar elementos de un formulario en el foro de PHP en Foros del Web. Buenas mi problema es el siguiente: Tengo un formulario con una lista desplegable Código PHP: <form id="formradio" name="formradio" method="post" action="gateway.php">   <p>     <label for="radio">Selec modelo radio</label>     <select name="radio" id="radio">     <option value = "0" selected = "selected"> Elige modelo radio... </option>        <?php $ind_valor_radio  = 0 ; ...
  #1 (permalink)  
Antiguo 10/03/2011, 05:05
 
Fecha de Ingreso: marzo-2009
Mensajes: 78
Antigüedad: 15 años, 1 mes
Puntos: 0
Problemas al capturar elementos de un formulario

Buenas mi problema es el siguiente:

Tengo un formulario con una lista desplegable

Código PHP:
<form id="formradio" name="formradio" method="post" action="gateway.php">
  <p>
    <label for="radio">Selec modelo radio</label>
    <select name="radio" id="radio">
    <option value = "0" selected = "selected"> Elige modelo radio... </option>
      <?php $ind_valor_radio =0;
      foreach(
$nom_radio as $opc_radio){?>
      <option value="<?php echo $id_radio[$ind_valor_radio]; ?>"><?php echo $opc_radio?></option>
      <?php $ind_valor_radio++; }?>
    </select>

Cuando le doy a enviar en la página que lo recojo, sólo me captura la primera cifra por ejemplo si el valor es 11 sólo me coge 1, pero si vuelvo para atrás y escojo otra vez la misma opción si que me recoge el 11, es decir sólo me pasa la primera vez que selecciono una opción.

¿ Alguien sabé porque puede pasar?

Tengo varios formularios y sólo me pasa con este.


Muchas gracias.
  #2 (permalink)  
Antiguo 10/03/2011, 05:22
Avatar de cluster28  
Fecha de Ingreso: enero-2008
Ubicación: Donostia - San Sebastián
Mensajes: 756
Antigüedad: 16 años, 3 meses
Puntos: 32
Respuesta: Problemas al capturar elementos de un formulario

Pruebas esto

Código PHP:
foreach($nom_radio as $valor_radio=>$opc_radio)
{
    echo 
'<option value="'.$valor_radio.'">'.$opc_radio.'</option>';

en lugar de

Código PHP:
<?php $ind_valor_radio =0;
      foreach(
$nom_radio as $opc_radio){?>
      <option value="<?php echo $id_radio[$ind_valor_radio]; ?>"><?php echo $opc_radio?></option>
      <?php $ind_valor_radio++; }?>
En el código fuente aparece bien los valores?

Viéndolo mejor no te va a funcionar. Pero te puede orientar metiendo los dos valores en un mismo array.

Última edición por cluster28; 10/03/2011 a las 05:28 Razón: Error
  #3 (permalink)  
Antiguo 10/03/2011, 06:47
 
Fecha de Ingreso: marzo-2009
Mensajes: 78
Antigüedad: 15 años, 1 mes
Puntos: 0
Respuesta: Problemas al capturar elementos de un formulario

Gracias, lo que me ralla es que si lo pruebo en local en mi ordenador funciona perfectamente, el problema me lo da cuando subo los archivos al servidor de mi hosting.

Y tampoco logro descubrir porque unas veces si me coge las dos cifras y otras sólo una.

Llevo mas de una hora dándole vueltas pero no se me ocurre nada.
  #4 (permalink)  
Antiguo 10/03/2011, 08:05
Avatar de cluster28  
Fecha de Ingreso: enero-2008
Ubicación: Donostia - San Sebastián
Mensajes: 756
Antigüedad: 16 años, 3 meses
Puntos: 32
Respuesta: Problemas al capturar elementos de un formulario

No has dicho si en el código fuente aparece bien los valores. Si aparecen bien, el problema es a la hora de recuperar los valores por POST, si los muestra mal es a la hora de mostrarlos (lógicamente).

Pon el código de recuperación de POST también, nos vendrá bien.
  #5 (permalink)  
Antiguo 10/03/2011, 08:47
 
Fecha de Ingreso: marzo-2009
Mensajes: 78
Antigüedad: 15 años, 1 mes
Puntos: 0
Respuesta: Problemas al capturar elementos de un formulario

Este es el trozo de código.
Código PHP:
<form id="formanyo" name="formanyo" method="post" action="radio.php">
  <p>
    <label for="anyo">Selec año Inicio - Fin</label>
    <select name="anyo" id="anyo">
    <option value = "0" selected = "selected"> Elige año... </option>
      <?php $ind_valor_anyo =0;
      foreach(
$anyo as $opc_anyo){?>
      <option value="<?php echo $id_anyo[$ind_valor_anyo]; ?>"><?php echo $opc_anyo?></option>
      <?php $ind_valor_anyo++; }?>
    </select>
 
    <input type="submit" name="anyo2" id="anyo2" value="Siguiente" />
 
</form>


//Cojo el valor 

if(isset($_REQUEST['anyo2'])){
    $id_anyo= $_POST['anyo'];
    $_SESSION['id_anyo']=$id_anyo;

//AQUI YA SOLO ME ha cogido LA PRIMERA CIFRA.


//Cuando hago esta consulta me devuelve resultados que no son correctos porque $id_anyo no tiene el valor de que le corresponde en vez de 12 tiene 1

$consulta_nom_radio=mysql_query("SELECT nom_radio FROM radio WHERE id_anyo = '{$id_anyo}'",$enlace);
    $nom_radio=array();
    $ind_nom_radio=0;
    while($row=mysql_fetch_array($consulta_nom_radio)){
        $nom_radio[$ind_nom_radio]=$row[0];
        $ind_nom_radio++;
        }
La primera vez que selecciono las opciones me sale bien, el problema viene cuando desde la página le doy a cambiar selección y me muestre otra vez el mismo formulario, cuando vuelvo a elegir una opción ya me coge sólo una cifra.

No sé si lo he aclarado más o lo he complicado jaja.

Muchas gracias.
  #6 (permalink)  
Antiguo 10/03/2011, 09:03
Avatar de cluster28  
Fecha de Ingreso: enero-2008
Ubicación: Donostia - San Sebastián
Mensajes: 756
Antigüedad: 16 años, 3 meses
Puntos: 32
Respuesta: Problemas al capturar elementos de un formulario

Yo en lugar de $_REQUEST usaría $_POST. Con eso no creo que tengas problemas. Además en la documentación de $_REQUEST hace referencia a la directiva request_order que dice que puede influir en $_REQUEST a partir de PHP 5.3.0.

Si incluyes esta línea:

Código PHP:
//Cojo el valor 

if(isset($_REQUEST['anyo2'])){
    
$id_anyo$_POST['anyo'];
    
$_SESSION['id_anyo']=$id_anyo;

//AQUI YA SOLO ME ha cogido LA PRIMERA CIFRA.

echo $id_anyo; <<<<<<<---------------------------

//Cuando hago esta consulta me devuelve resultados que no son correctos porque $id_anyo no tiene el valor de que le corresponde en vez de 12 tiene 1

$consulta_nom_radio=mysql_query("SELECT nom_radio FROM radio WHERE id_anyo = '{$id_anyo}'",$enlace); 
Te muestra 1?

La consulta también puedes hacerla

Código PHP:
"SELECT nom_radio FROM radio WHERE id_anyo ='".$id_anyo."'" 
  #7 (permalink)  
Antiguo 10/03/2011, 09:13
 
Fecha de Ingreso: marzo-2009
Mensajes: 78
Antigüedad: 15 años, 1 mes
Puntos: 0
Respuesta: Problemas al capturar elementos de un formulario

He probado con $_POST y me pasa lo mismo por eso he intentado con $_REQUEST.

Sí, me muestra 1, y la consulta me la hace con el valor 1.

Me estoy volviendo loco porque no le veo lógica.

En mi ordenador en local me funciona todo correctamente.

Cuando me lo captura mal, si le doy a volver al formulario anyo y selecciono el año, entonces si que me coge bien las dos cifras.

Te cuento un poquito más.

Tengo un formulario modelo coche, que te lleva a otro formulario anyo según la opción que elijas te muestra los años que toquen, y luego pasa a otro formulario radio que te muestra las opciones según el año que eliges.

La primera vez me lo hace todo sin problemas, pero si en el formulario año le doy a volver al formulario modelo para elegir otro modelo distinto es cuando me da error.

Si cuando me da error, desde el formulario radio vuelvo al formulario año y elijo un año entonces me funciona bien, pero cuando vuelvo al formulario modelo me vuelve a dar error.

Si cierro la sesión y empiezo todos lso formularios desde 0 me vuelve a funcionar bien la primera vez.

Espero no haberte liado mucho jaja, y mcuahs gracias
  #8 (permalink)  
Antiguo 10/03/2011, 09:27
Avatar de cluster28  
Fecha de Ingreso: enero-2008
Ubicación: Donostia - San Sebastián
Mensajes: 756
Antigüedad: 16 años, 3 meses
Puntos: 32
Respuesta: Problemas al capturar elementos de un formulario

No se tío. Verifica como queda este parte de código en el código fuente que obtienes

<select name="anyo" id="anyo">
<option value = "0" selected = "selected"> Elige año... </option>
<?php $ind_valor_anyo =0;
foreach($anyo as $opc_anyo){?>
<option value="<?php echo $id_anyo[$ind_valor_anyo]; ?>"><?php echo $opc_anyo; ?></option>
<?php $ind_valor_anyo++; }?>
</select>

No se me ocurren más cosas.
  #9 (permalink)  
Antiguo 10/03/2011, 09:34
 
Fecha de Ingreso: marzo-2009
Mensajes: 78
Antigüedad: 15 años, 1 mes
Puntos: 0
Respuesta: Problemas al capturar elementos de un formulario

Creo que ya lo he solucionado.

Era problema con las sesiones, pero no me digas qué problema porque ni idea jaja.

Ha principio de la página del formulario que me daba problema he hecho un unset de todas las sesiones que usaba en los otros formularios y parece que me funciona bien, ahora probraré todas las posibilidades pero parece que está arreglado.

Muchas gracias por tu ayuda y perdón por las molestias.
  #10 (permalink)  
Antiguo 10/03/2011, 09:37
Avatar de cluster28  
Fecha de Ingreso: enero-2008
Ubicación: Donostia - San Sebastián
Mensajes: 756
Antigüedad: 16 años, 3 meses
Puntos: 32
Respuesta: Problemas al capturar elementos de un formulario

Cita:
Iniciado por cosasvarias Ver Mensaje
Muchas gracias por tu ayuda y perdón por las molestias.
Para eso existe esto.

Etiquetas: elementos, formulario
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 03:27.