Foros del Web » Programando para Internet » PHP »

Ayuda con un formulario

Estas en el tema de Ayuda con un formulario en el foro de PHP en Foros del Web. como recuperar el valor de un select sin duplicados y de un radio button de un grupo de opciones al enviar los datos de un ...
  #1 (permalink)  
Antiguo 31/07/2008, 06:55
 
Fecha de Ingreso: julio-2008
Mensajes: 12
Antigüedad: 16 años, 3 meses
Puntos: 0
Ayuda con un formulario

como recuperar el valor de un select sin duplicados y de un radio button de un grupo de opciones al enviar los datos de un formulario y luego cargar la misma pagina.
En el select se muestra el valor que se ha enviado pero
al desplegar la lista aparece varias veces el valor.
No puedo poner esto
<?php if(isset($_POST['GrupoOpciones1'])); echo $_POST['GrupoOpciones1']; ?>
en value de GrupoOpciones1 porque no me muestra nada, la opción no se queda señalada despues de enviar los datos y cargar la pagina del formulario.


Este el el codigo, gracias a quien me pueda ayudar.

Quiero recuperar los valores que se han mandado despues de enviar los datos de un formulario, de los dos select en el primero al enviar los valores se duplican al volver a seleccionar como se puede evitar y como se recupera el valor de un radio button de un grupo de opciones para que al enviar los datos podamos recuperar el valor y se muestre señalado en el formulario.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Selecci&oacute;n de datos</title>
<script languaje="JavaScript">
<!--
provincias = new Array();
provincias[0] = new Array();
provincias[1] = new Array('Almería','Cádiz','Córdoba','Granada','Jaén' ,'Sevilla');
provincias[2] = new Array('Huesca','Teruel','Zaragoza');
provincias[3] = new Array('Oviedo','Gijón');
function cambiar(formulario){
var i = 0;
var select1 = formulario['D1'];
var select2 = formulario['D2'];
var vector = provincias[select1.selectedIndex];
if(vector.length)select2.length=vector.length;
while(vector[i]){
select2.options[i].value = vector[i];
select2.options[i].text = vector[i];
i++;
}
select2.options[0].selected = 1;
}
-->
</script>
<style type="text/css">
<!--
body {
background-color: #CCCCCC;
}
.Estilo1 {
font-family: Arial, Helvetica, sans-serif;
font-size: 14px;
color: #FFFFFF;
}
.Estilo2 {
font-family: Arial, Helvetica, sans-serif;
font-size: 12px;
}
-->
</style></head>

<body>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<table width="235" border="0" align="center">
<tr>
<td width="222"><span class="Estilo1">Selecciona los datos: </span></td>
</tr>
</table>
<table width="232" height="163" style="border:solid 1px #FFFFFF"border="0" align="center" bgcolor="#CBC7FC">
<tr>
<td>&nbsp;</td>
<td width="86">&nbsp;</td>
<td width="108">&nbsp;</td>
</tr>
<tr>
<td>&nbsp;</td>
<td width="86"><div align="left" class="Estilo2">Provincia:</div></td>
<td width="108"><div align="left" class="Estilo2">Localidad:</div></td>
</tr>
<tr>
<td width="22">&nbsp;</td>
<td colspan="2"><form name="form" method="post" action="lamismapagina.php">
<select name="D1" onchange="cambiar(this.form)">
<option selected="selected">
<?php if(isset($_POST['D1'])); echo $_POST['D1']; ?>
</option>
<option>Andaluc&iacute;a</option>
<option>Arag&oacute;n</option>
<option>Asturias</option>
</select>
<select name="D2">
<option selected="selected">
<?php if(isset($_POST['D2'])); echo $_POST['D2']; ?>
</option>
</select>
<table width="200">
<tr>
<td><label> <span class="Estilo2"><br />
Carnet</span> de conducir: <br />
<input type="radio" name="GrupoOpciones1" value="si" />
<span class="Estilo2">si</span></label></td>
</tr>
<tr>
<td><label>
<input type="radio" name="GrupoOpciones1" value="no" />
<span class="Estilo2">no</span></label></td>
</tr>
</table>
<p></p>
<div align="center">
<input type="submit" name="Submit" value="Enviar" />
</div>
</form></td>
</tr>
</table>
</body>
</html>
  #2 (permalink)  
Antiguo 31/07/2008, 08:12
Avatar de Marvin
Colaborador
 
Fecha de Ingreso: febrero-2005
Ubicación: global $Chile->Santiago;
Mensajes: 1.991
Antigüedad: 19 años, 9 meses
Puntos: 81
Respuesta: Ayuda con un formulario

Prueba poniendo esto:
Código PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <title>Selecci&oacute;n de datos</title>
    <script languaje="JavaScript">
    <!--
        provincias = new Array();
        provincias[0] = new Array();
        provincias[1] = new Array('Almería','Cádiz','Córdoba','Granada','Jaén' ,'Sevilla');
        provincias[2] = new Array('Huesca','Teruel','Zaragoza');
        provincias[3] = new Array('Oviedo','Gijón');
        function cambiar(formulario){
            var i = 0;
            var select1 = formulario['D1'];
            var select2 = formulario['D2'];
            var vector = provincias[select1.selectedIndex];
            if(vector.length)select2.length=vector.length;
                while(vector[i]){
                    select2.options[i].value = vector[i];
                    select2.options[i].text = vector[i];
                    i++;
                }
            select2.options[0].selected = 1;
        }
    -->
    </script>
    <style type="text/css">
    <!--
        body {
            background-color: #CCCCCC;
        }
        .Estilo1 {
            font-family: Arial, Helvetica, sans-serif;
            font-size: 14px;
            color: #FFFFFF;
        }
        .Estilo2 {
            font-family: Arial, Helvetica, sans-serif;
            font-size: 12px;
        }
    -->
    </style>
</head>
<body>
    <p>&nbsp;</p>
    <p>&nbsp;</p>
    <p>&nbsp;</p>
    <p>&nbsp;</p>
    <table width="235" border="0" align="center">
    <tr>
        <td width="222"><span class="Estilo1">Selecciona los datos: </span></td>
    </tr>
    </table>
    <table width="232" height="163" style="border:solid 1px #FFFFFF"border="0" align="center" bgcolor="#CBC7FC">
    <tr>
        <td>&nbsp;</td>
        <td width="86">&nbsp;</td>
        <td width="108">&nbsp;</td>
    </tr>
    <tr>
        <td>&nbsp;</td>
        <td width="86"><div align="left" class="Estilo2">Provincia:</div></td>
        <td width="108"><div align="left" class="Estilo2">Localidad:</div></td>
    </tr>
    <tr>
        <td width="22">&nbsp;</td>
        <td colspan="2">
            <form name="form" method="post" action="lamismapagina.php">
                <select name="D1" onchange="cambiar(this.form)">
                    <option selected="selected">
                        <?php if(isset($_POST['D1'])); echo $_POST['D1']; ?>
                    </option>
                    <option>Andaluc&iacute;a</option>
                    <option>Arag&oacute;n</option>
                    <option>Asturias</option>
                </select>
                <select name="D2">
                    <option selected="selected">
                        <?php if(isset($_POST['D2'])); echo $_POST['D2']; ?>
                    </option>
                </select>
                <table width="200">
                <tr>
                    <td>
                        <label>
                            <span class="Estilo2">Carnet de conducir: </span><br />
                            <input type="radio" name="GrupoOpciones1" value="si"
                            <? if(isset($_POST['GrupoOpciones1']) && $_POST['GrupoOpciones1'] == "si") echo 'checked'?> />
                            <span class="Estilo2">si</span>
                        </label>
                    </td>
                </tr>
                <tr>
                    <td>
                        <label>
                            <input type="radio" name="GrupoOpciones1" value="no" 
                            <? if(isset($_POST['GrupoOpciones1']) && $_POST['GrupoOpciones1'] == "no") echo 'checked'?> />
                            <span class="Estilo2">no</span>
                        </label>
                    </td>
                </tr>
                </table>
                <p></p>
                <div align="center">
                    <input type="submit" name="Submit" value="Enviar" />
                </div>
            </form>
        </td>
    </tr>
    </table>
</body>
</html>
Suerte!
__________________
El que dice "Solo sé que nada sé", esta asumiendo que sabe algo.
Lea las FAQ's!
  #3 (permalink)  
Antiguo 31/07/2008, 08:17
 
Fecha de Ingreso: julio-2008
Mensajes: 12
Antigüedad: 16 años, 3 meses
Puntos: 0
Respuesta: Ayuda con un formulario

Voy a probar, pero gracias de antemano
  #4 (permalink)  
Antiguo 31/07/2008, 08:31
 
Fecha de Ingreso: julio-2008
Mensajes: 12
Antigüedad: 16 años, 3 meses
Puntos: 0
Respuesta: Ayuda con un formulario

Lo del select no esta solucionado, se siguen duplicando los valores.
Y en cuanto a lo del grupo de opciones pillo la idea pero no es efectivo
el formulario no recupera el valor del grupo de opciones.
Puede ser que esta linea que me has dicho se ha de colocar en otra parte
<? if(isset($_POST['GrupoOpciones1']) && $_POST['GrupoOpciones1'] == "si") echo 'checked'; ?>
Si puedes seguir intentando ayudarme.
  #5 (permalink)  
Antiguo 31/07/2008, 08:40
Avatar de Marvin
Colaborador
 
Fecha de Ingreso: febrero-2005
Ubicación: global $Chile->Santiago;
Mensajes: 1.991
Antigüedad: 19 años, 9 meses
Puntos: 81
Respuesta: Ayuda con un formulario

Tu dato se duplica porque se agrega adelante... lo que debes hacer es comparar cada uno para saber cual debe ser selected algo como:
Código PHP:
<select name="D1" onchange="cambiar(this.form)">
    <option <? if($_POST['D1'] == "Andalucía"){ ?> selected <? }?>>Andaluc&iacute;a</option>
    <option <? if($_POST['D1'] == "Aragón"){ ?> selected <? }?>>Arag&oacute;n</option>
     <option <? if($_POST['D1'] == "Asturias"){ ?> selected <? }?>>Asturias</option>
 </select>
Y en los radio cambialo por esto (donde corresponda si y no):
Código PHP:
<input type="radio" name="GrupoOpciones1" value="si" <? if($_POST['GrupoOpciones1'] == "si") { ?> checked <? ?> />
Suerte!
__________________
El que dice "Solo sé que nada sé", esta asumiendo que sabe algo.
Lea las FAQ's!
  #6 (permalink)  
Antiguo 31/07/2008, 09:00
 
Fecha de Ingreso: julio-2008
Mensajes: 12
Antigüedad: 16 años, 3 meses
Puntos: 0
Respuesta: Ayuda con un formulario

Gracias pero sigue sin resolverse marvin.
No me funcionan ni lo de los select ni lo del grupo de opciones.
Se puede hacer lo que yo quiero con php.
  #7 (permalink)  
Antiguo 31/07/2008, 09:11
Avatar de Marvin
Colaborador
 
Fecha de Ingreso: febrero-2005
Ubicación: global $Chile->Santiago;
Mensajes: 1.991
Antigüedad: 19 años, 9 meses
Puntos: 81
Respuesta: Ayuda con un formulario

Sip... se puede hacer... pero no entiendo porque no te funciona... El select2 puede ser porque lo cargas desde Javascript... por ahi podria estar teniendo algun conflicto, pero los radio es muy raro... imprimiste los valores de cada variable para ver si estas comparando bien?
__________________
El que dice "Solo sé que nada sé", esta asumiendo que sabe algo.
Lea las FAQ's!
  #8 (permalink)  
Antiguo 31/07/2008, 09:16
 
Fecha de Ingreso: julio-2008
Mensajes: 12
Antigüedad: 16 años, 3 meses
Puntos: 0
Respuesta: Ayuda con un formulario

marvin
Lo he puesto como tu me has dicho
<input type="radio" name="GrupoOpciones1" value="si" <? if($_POST['GrupoOpciones1'] == "si") { ?> checked <? } ?> />
Pero ese codigo php, puede ir hay suelto o hay que ponerlo en otro sitio
  #9 (permalink)  
Antiguo 31/07/2008, 09:23
Avatar de Marvin
Colaborador
 
Fecha de Ingreso: febrero-2005
Ubicación: global $Chile->Santiago;
Mensajes: 1.991
Antigüedad: 19 años, 9 meses
Puntos: 81
Respuesta: Ayuda con un formulario

Mira... antes de continuar, despues de la etiqueta <body> pon todas las variables que estas recuperando ya sea con var_dump($_POST) o echo $_POST['GrupoOpciones1'] y asi con todas las que tienes en tu form...

De esta manera veremos que estas enviando y que datos contienen una vez enviado el form. Por ahi podemos ir comparando para mostrar lo que quieres mostrar.

Suerte!
__________________
El que dice "Solo sé que nada sé", esta asumiendo que sabe algo.
Lea las FAQ's!
  #10 (permalink)  
Antiguo 31/07/2008, 09:36
 
Fecha de Ingreso: julio-2008
Mensajes: 12
Antigüedad: 16 años, 3 meses
Puntos: 0
Respuesta: Ayuda con un formulario

Eso ya estaba comprovado y el resultado queda bien en la base de datos, el problema es el formulario.
pero es lo que se envia si pulso no
array(4) { ["D1"]=> string(9) "Andalucía"
["D2"]=> string(6) "Huesca"
["GrupoOpciones1"]=> string(2) "no" ["Submit"]=> string(6) "Enviar" }
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 14:46.