Foros del Web » Programando para Internet » PHP »

mostrar datos formulario

Estas en el tema de mostrar datos formulario en el foro de PHP en Foros del Web. Hola de nuevo! tengo un formulario que ya ha sido rellenado por el usuario y sus datos guardados en la bdd. Ahora quisiera que el ...
  #1 (permalink)  
Antiguo 08/08/2007, 07:56
 
Fecha de Ingreso: julio-2007
Mensajes: 63
Antigüedad: 16 años, 9 meses
Puntos: 0
mostrar datos formulario

Hola de nuevo!

tengo un formulario que ya ha sido rellenado por el usuario y sus datos guardados en la bdd.
Ahora quisiera que el propio usuario pudiese modificar esos datos.
He conseguido mostrar los datos de cajas de texto, pero no consigo mostrar los valores de: select, radio button y checkbox.

Os mando el codigo:
modifica.php

Código PHP:
<? $cerca=mysql_query("SELECT * FROM receptess WHERE id_usuari LIKE '$id' AND id_recepta=11"$link);
$rs=mysql_fetch_array($cerca);
?>
</p>
<form action="actualitzar_recepta.php" method="post" name="form" id="form" onSubmit="return validar(this)" >
  <table width="45%" border="0" align="center" class="text">
    <tr> 
      <td height="32" class="text"><font size="3" face="Arial, Helvetica, sans-serif">T&iacute;tol</font></td>
      <td><font size="3" face="Arial, Helvetica, sans-serif"> 
        <input name="tit" type="text" id="tit2" size="40" value="<? echo $rs['titol']?>">
        </font></td>
    </tr>
    <tr> 
      <td height="101" class="text"><font face="Arial, Helvetica, sans-serif">Ingredients</font></td>
      <td><font size="3" face="Arial, Helvetica, sans-serif"> 
        <textarea name="ing" cols="35" rows="5" wrap="VIRTUAL" id="ing"><? echo $rs['ingredients']?></textarea>
        </font></td>
    </tr>
    <tr> 
      <td height="28"><font size="3" face="Arial, Helvetica, sans-serif">Categoria</font></td>
      <td><table width="243" id="menu_categoria">
          <tr> 
            <td width="105" height="20"><font face="Arial, Helvetica, sans-serif"> 
              <input type="radio" name="cat" value="primer">
              primer</font></td>
            <td width="126"><font face="Arial, Helvetica, sans-serif"> 
              <label> 
              <input type="radio" name="cat" value="segon">
              segon</label>
              </font></td>
          </tr>
        </table></td>
    </tr>
    <tr> 
      <td height="28"><font face="Arial, Helvetica, sans-serif">Temporada</font></td>
      <td><table width="243" id="menu_temporada">
          <tr> 
            <td width="105"><font face="Arial, Helvetica, sans-serif"> 
              <input name="temp1" type="checkbox" id="temp1" value="primavera">
              primavera</font></td>
            <td width="126"><font face="Arial, Helvetica, sans-serif"> 
              <label> </label>
              <input name="temp2" type="checkbox" id="temp2" value="tardor">
              <label>tardor </label>
              </font></td>
          </tr>
        </table></td>
    </tr>
    <tr> 
      <td><font face="Arial, Helvetica, sans-serif">Preu</font></td>
      <td><font face="Arial, Helvetica, sans-serif"> 
        <select name="preu" id="select2">
          <option value="1 - 5">1 - 5</option>
          <option value="5 - 20">5 - 20</option>
          <option value="20 - 50">20 - 50</option>
          <option value="+ 50 ">+ 50 </option>
        </select>
        euros </font></td>
    </tr>
    <tr> 
      <td height="26">&nbsp;</td>
      <td><div align="center"><font size="3" face="Geneva, Arial, Helvetica, sans-serif"> 
          <input name="Submit" type="submit" class="boto" value="Guardar">
          </font></div></td>
    </tr>
  </table>
</form>
</body>
</html>
y así es como se guardaban en la base de datos:
inserta.php
Código PHP:
$titol=$_POST['tit'];
$ingredients=$_POST['ing'];
$categoria=$_POST['cat'];
$preu=$_POST['preu'];
$temporades = array();
if( !empty( 
$_POST['temp1'] ) ) {
    
$temporades[] = $_POST['temp1'];
}
if( !empty( 
$_POST['temp2'] ) ) {
    
$temporades[] = $_POST['temp2'];
}
$temporada implode","$temporades );
$query=mysql_query("INSERT INTO receptess (titol, ingredients, preu, categoria, temporada, id_usuari) VALUES ('$titol', '$ingredients',  '$preu', '$categoria', '$temporada', '$id')"$link); 

¿Alguien me puede echar una mano?

Gracias!!

Última edición por setram; 08/08/2007 a las 08:04
  #2 (permalink)  
Antiguo 08/08/2007, 08:14
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Re: mostrar datos formulario

Para preseleccionar un valor del select, tienes que agregarle el atributo de selected al option que quieras que este seleccionado:
Código HTML:
<option value="algo" selected="selected">texto</option> 
Asi tambien para un checkbox le pasas el atributo de checked, y en radio button tambien es selected:

Código HTML:
<input type="checkbox" name="algo" value="otracosa" checked="checked" />
<input type="radio" name="algo" value="otracosa" selected="selected" /> 
Saludos.
  #3 (permalink)  
Antiguo 08/08/2007, 09:22
 
Fecha de Ingreso: julio-2007
Mensajes: 63
Antigüedad: 16 años, 9 meses
Puntos: 0
Re: mostrar datos formulario

Pero...como sé yo que casilla habia seleccionado el usuario?
Te refieres a que antes de guardarlo en la bdd le asigne el atributo selected?
  #4 (permalink)  
Antiguo 08/08/2007, 09:28
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Re: mostrar datos formulario

Tendrias que checar si esta seleccionado antes de dibujar el checkbox:
Código PHP:
if( !empty( $row['checkbox'] ) ) {
    echo 
"<input type=\"checkbox\" name=\"algo\" value=\"otracosa\" checked=\"checked\" />";

De lo contrario lo presentas sin checar.

Saludos.
  #5 (permalink)  
Antiguo 08/08/2007, 09:42
Avatar de Carxl
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: Bogotá
Mensajes: 2.993
Antigüedad: 17 años, 9 meses
Puntos: 70
De acuerdo Re: mostrar datos formulario

Hola setram!!

No mira..., lo que pasa es que debes recorrer tus datos de la DB e ir preguntando si es igual al dato que tiene el registro del usuario, mas o menos serìa algo asì:

Traes los datos del usuario
Código PHP:
$result=mysql_query("select nombre,opcion_escogida from usuarios where id='algo'")
$row=mysql_fetch_array($result);
//en la matriz asociativa $row tienes los datos de tu usuario... 
Cuando cargues los datos de un select option por ejemplo

Código PHP:
$result=mysql_query("select id_opcion,opcion from tabla_opciones");
$raw=msyql_fetch_array($result); 
<select name="opc">
do
{
<option value="<?php echo $raw[0]?>" <?php if($raw[0]==$row[1]){echo "selected"}?>><?php echo $raw[1]?></option>
}while($raw=mysql_fetch_array($result););
</select>

Fìjate en la parte <?php if($raw[0]==$row[1]){echo "selected"}?>, con esa instrucciòn logras "cargar" la opciòn escogida por el usuario como predefinida...

Espero que entiendas el còdigo, sino pues me preguntas..

Saludos
__________________
Hay 10 tipos de personas, los que entienden binario y los que no. (Anónimo)
www.programandoweb.com
  #6 (permalink)  
Antiguo 08/08/2007, 10:14
 
Fecha de Ingreso: julio-2007
Mensajes: 63
Antigüedad: 16 años, 9 meses
Puntos: 0
Re: mostrar datos formulario

gracias a los dos por responder

Pero sigue sin funcionarme. Creo que el problema es que el valor de los checkbox los tengo guardados en la misma tabla, separados por comas. Debería hacer una tabla aparte para ellos? asi podría ejecutar esta orden no?
Código PHP:
$result=mysql_query("select id_opcion,opcion from tabla_opciones"); 
  #7 (permalink)  
Antiguo 08/08/2007, 10:34
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Re: mostrar datos formulario

Si los tienes guardados separados por comas puedes hacer esto:
Código PHP:
$choices explode","$row['opciones'] );

if( 
in_array"esteCheck"$choices ) ) {
     echo 
"<input type=\"checkbox\" name=\"esteCheck\" value=\"algo\" checked=\"checked\" />";

Saludos.
  #8 (permalink)  
Antiguo 08/08/2007, 10:44
 
Fecha de Ingreso: julio-2007
Mensajes: 63
Antigüedad: 16 años, 9 meses
Puntos: 0
Re: mostrar datos formulario

iujuuuuuu!!! funciona!

gracias de nuevo! ahora voy a probar suerte con los radio button y el select!
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 12:40.