Foros del Web » Programando para Internet » PHP »

Ayuda: Validar menu desplegable!!!

Estas en el tema de Ayuda: Validar menu desplegable!!! en el foro de PHP en Foros del Web. Tengo una página donde se actualizan los datos de un usuario y utilizo un menú desplegable donde pone el estado Civil. El problema es que ...
  #1 (permalink)  
Antiguo 16/06/2009, 03:03
 
Fecha de Ingreso: agosto-2008
Mensajes: 161
Antigüedad: 15 años, 8 meses
Puntos: 0
Ayuda: Validar menu desplegable!!!

Tengo una página donde se actualizan los datos de un usuario y utilizo un menú desplegable donde pone el estado Civil.
El problema es que cuando no quiero cambiar el estado, automáticamente se cambia por el 1º que tengo en el menú.

Qué debo poner en el código? He hecho esto pero no funciona:

Código:
if( $_POST['estadoCivil'] != null || $_POST['estadoCivil'] != 0 ) {	
	if ((isset($_POST["MM_update"])) && ($_POST["MM_update"] == "form1")) {
  	$updateSQL = sprintf("UPDATE candidato SET estadoCivil=%s WHERE nifCandidato=%s",
                       GetSQLValueString($_POST['estadoCivil'], "int"),
                       GetSQLValueString($_POST['nifCandidato'], "text"));

	  mysql_select_db($database_conexionETT, $conexionETT);
	  $Result1 = mysql_query($updateSQL, $conexionETT) or die(mysql_error());
	}
}
  #2 (permalink)  
Antiguo 16/06/2009, 03:06
Avatar de abidibo  
Fecha de Ingreso: mayo-2009
Mensajes: 121
Antigüedad: 15 años
Puntos: 7
Respuesta: Ayuda: Validar menu desplegable!!!

Hola, pon el codigo del formulario porfavor
  #3 (permalink)  
Antiguo 16/06/2009, 03:22
 
Fecha de Ingreso: agosto-2008
Mensajes: 161
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: Ayuda: Validar menu desplegable!!!

Todo el código no lo puedo poner porque es muy largo, pero aquí va un cacho:

Código:
 <form name="form1" method="post" action="insertar_usuario.php" onSubmit="return validar_formulario();">
            <table width="90%" align="center" bgcolor="#FFFF66">
              <tr>
                <td width="35%" align="right"><span class="FuenteRegistro">Nombre*</span></td>
                <td><input name="nombre" type="text" id="nombre" size="40" maxlength="40" ></td>
              </tr>
              <tr>
                <td align="right"><span class="FuenteRegistro">Apellidos*</span></td>
                <td align="left"><input name="apellidos" type="text" id="apellidos" size="40" maxlength="40"></td>
              </tr>
              <tr>
                <td align="right"><span class="FuenteRegistro">Fecha de Nacimiento* </span></td>
                <td align="left"><? require ("Calendario/calendario.php");  escribe_formulario_fecha_vacio("FechaNacimiento","form1");?></td>
				<td align="left">&nbsp;</td>
                </tr>
 <tr>
                <td align="right" class="FuenteRegistro">
                  Nif*
                  <label for="radio3"></label>
                  <label for="radio2"></label></td><td class="FuenteRegistro"><label for="label14"></label>
                    <input name="Nif" type="text" id="Nif" size="9" maxlength="9"> 
                    (dni + letra) </td>
              </tr>
 <tr>
                <td align="right" class="FuenteRegistro">Estado Civil* </td>
                <td class="FuenteRegistro"><label for="label16"></label>
                    <select name="estadoCivil" id="estadoCivil">
                      <option> </option>
                      <option>soltero/a</option>
                      <option>casado/a</option>
                      <option>divorciado/a</option>
                      <option>viudo/a</option>
                    </select>                </td>
              </tr>
</table>
			<table width="100%">
              <tr>
                <td width="80%"><img src="imagenes/guardar.PNG" width="288" height="32" hspace="150" /></td>
                <td width="20%"><input name="image" type="image" src="imagenes/siguiente.PNG" /></td>
              </tr>
            </table>
			</form>
  #4 (permalink)  
Antiguo 16/06/2009, 03:38
Avatar de abidibo  
Fecha de Ingreso: mayo-2009
Mensajes: 121
Antigüedad: 15 años
Puntos: 7
Respuesta: Ayuda: Validar menu desplegable!!!

Bueno no se, pero por lo que veo:
Código:
<select name="estadoCivil" id="estadoCivil">
  <option> </option>
  <option>soltero/a</option>
  <option>casado/a</option>
  <option>divorciado/a</option>
  <option>viudo/a</option>
</select>
Si no seleccionas nada en $_POST['estadoCevil'] te se pone ' ' o sea un espacio, y tu solo controlas por el null y el 0. Yo intentaria asi', dos cosas:
formulario:
Código:
...
<select name="estadoCivil" id="estadoCivil">
  <option vlaue=""></option>
  <option>soltero/a</option>
  <option>casado/a</option>
  <option>divorciado/a</option>
  <option>viudo/a</option>
</select>  
...
action
Código PHP:
if($_POST['estadoCivil']) {  // asì es suficiente 
Dime si funciona ciao!
  #5 (permalink)  
Antiguo 16/06/2009, 04:00
 
Fecha de Ingreso: agosto-2008
Mensajes: 161
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: Ayuda: Validar menu desplegable!!!

Genial! funciona!
Lo malo es q había acortado el código de inserción, en realidad es este:

Código:
if ((isset($_POST["MM_update"])) && ($_POST["MM_update"] == "form1")) {
  $updateSQL = sprintf("UPDATE candidato SET idProvincia=%s, nombre=%s, apellidos=%s, direccion=%s, poblacion=%s, cp=%s, fechaNacimiento=%s, lugarNacimiento=%s, telefono=%s, movil=%s, email=%s, estadoCivil=%s, numHijos=%s WHERE nifCandidato=%s",
                       GetSQLValueString($_POST['provincia'], "int"),
                       GetSQLValueString($_POST['nombre'], "text"),
                       GetSQLValueString($_POST['apellidos'], "text"),
                       GetSQLValueString($_POST['direccion'], "text"),
                       GetSQLValueString($_POST['poblacion'], "text"),
                       GetSQLValueString($_POST['cp'], "text"),
                       GetSQLValueString($_POST['fechaNacimiento'], "date"),
                       GetSQLValueString($_POST['lugarNacimiento'], "text"),
                       GetSQLValueString($_POST['telefono'], "text"),
                       GetSQLValueString($_POST['movil'], "text"),
                       GetSQLValueString($_POST['email'], "text"),
                       GetSQLValueString($_POST['estadoCivil'], "int"),
                       GetSQLValueString($_POST['numHijos'], "int"),
                       GetSQLValueString($_POST['nifCandidato'], "text"));

  mysql_select_db($database_conexionETT, $conexionETT);
  $Result1 = mysql_query($updateSQL, $conexionETT) or die(mysql_error());
}
Para que me funcione aquí tengo que separar la inserción del estadoCivil y hacerla a parte o hay otra forma de hacerlo?
  #6 (permalink)  
Antiguo 16/06/2009, 04:10
Avatar de abidibo  
Fecha de Ingreso: mayo-2009
Mensajes: 121
Antigüedad: 15 años
Puntos: 7
Respuesta: Ayuda: Validar menu desplegable!!!

Puedes hacer todo junto, es suficiente hacer un control pienso
Código PHP:
if ((isset($_POST["MM_update"])) && ($_POST["MM_update"] == "form1")) {
  
$update_string "UPDATE candidato SET idProvincia=%s, nombre=%s, apellidos=%s, direccion=%s, poblacion=%s, cp=%s, fechaNacimiento=%s, lugarNacimiento=%s, telefono=%s, movil=%s, email=%s";
  if(
$_POST['estadoCivil']) $update_string .= ", estadoCivil=%s";
  
$update_string .= ", numHijos=%s WHERE nifCandidato=%s";

  
$updateSQL sprintf($update_string,
                       
GetSQLValueString($_POST['provincia'], "int"),
                       
GetSQLValueString($_POST['nombre'], "text"),
                       
GetSQLValueString($_POST['apellidos'], "text"),
                       
GetSQLValueString($_POST['direccion'], "text"),
                       
GetSQLValueString($_POST['poblacion'], "text"),
                       
GetSQLValueString($_POST['cp'], "text"),
                       
GetSQLValueString($_POST['fechaNacimiento'], "date"),
                       
GetSQLValueString($_POST['lugarNacimiento'], "text"),
                       
GetSQLValueString($_POST['telefono'], "text"),
                       
GetSQLValueString($_POST['movil'], "text"),
                       
GetSQLValueString($_POST['email'], "text"),
                       if(
$_POST['estadoCivil']) GetSQLValueString($_POST['estadoCivil'], "int"),  // mi duda, no se si eso se puede hacer como que nunca utilize sprintf
                       
GetSQLValueString($_POST['numHijos'], "int"),
                       
GetSQLValueString($_POST['nifCandidato'], "text"));

  
mysql_select_db($database_conexionETT$conexionETT);
  
$Result1 mysql_query($updateSQL$conexionETT) or die(mysql_error());

Ciao!
  #7 (permalink)  
Antiguo 16/06/2009, 04:23
 
Fecha de Ingreso: agosto-2008
Mensajes: 161
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: Ayuda: Validar menu desplegable!!!

No funciona.

Da error en la 3º línea: if($_POST['estadoCivil']) $update_string .= ", estadoCivil=%s"; ....
  #8 (permalink)  
Antiguo 16/06/2009, 04:25
 
Fecha de Ingreso: agosto-2008
Mensajes: 161
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: Ayuda: Validar menu desplegable!!!

El error es:

Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in C:\xampp\htdocs\Proyecto web\modificar_datosPRUEBA2.php on line 36
  #9 (permalink)  
Antiguo 16/06/2009, 04:27
Avatar de abidibo  
Fecha de Ingreso: mayo-2009
Mensajes: 121
Antigüedad: 15 años
Puntos: 7
Respuesta: Ayuda: Validar menu desplegable!!!

No hay error en esa linea, pon el error que te da, la string completa
  #10 (permalink)  
Antiguo 16/06/2009, 04:32
 
Fecha de Ingreso: agosto-2008
Mensajes: 161
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: Ayuda: Validar menu desplegable!!!

Cita:
Iniciado por una_xikilla Ver Mensaje
El error es:

Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in C:\xampp\htdocs\Proyecto web\modificar_datosPRUEBA2.php on line 36
  #11 (permalink)  
Antiguo 16/06/2009, 04:36
Avatar de abidibo  
Fecha de Ingreso: mayo-2009
Mensajes: 121
Antigüedad: 15 años
Puntos: 7
Respuesta: Ayuda: Validar menu desplegable!!!

Yo no tengo error poniendo las primeras tres lineas
Código PHP:
if ((isset($_POST["MM_update"])) && ($_POST["MM_update"] == "form1")) {
  
$update_string "UPDATE candidato SET idProvincia=%s, nombre=%s, apellidos=%s, direccion=%s, poblacion=%s, cp=%s, fechaNacimiento=%s, lugarNacimiento=%s, telefono=%s, movil=%s, email=%s";
  if(
$_POST['estadoCivil']) $update_string .= ", estadoCivil=%s";
  
$update_string .= ", numHijos=%s WHERE nifCandidato=%s"
  echo 
$update_string;

tu?
  #12 (permalink)  
Antiguo 16/06/2009, 04:53
 
Fecha de Ingreso: agosto-2008
Mensajes: 161
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: Ayuda: Validar menu desplegable!!!

Tienes razón, el error es:

Parse error: syntax error, unexpected T_IF in C:\xampp\htdocs\Proyecto web\modificar_datosPRUEBA2.php on line 53
  #13 (permalink)  
Antiguo 16/06/2009, 06:29
Avatar de abidibo  
Fecha de Ingreso: mayo-2009
Mensajes: 121
Antigüedad: 15 años
Puntos: 7
Respuesta: Ayuda: Validar menu desplegable!!!

Ya, como imaginaba, lo que no està bien es esto:
if($_POST['estadoCivil']) GetSQLValueString($_POST['estadoCivil'], "int"),
no se como areglarlo (nunca utilizo sprintf) si no en una manera que no me gusta o sea asì:
Código PHP:
if($_POST['estadoCivil']) {
$updateSQL sprintf($update_string,
                       
GetSQLValueString($_POST['provincia'], "int"),
                       
GetSQLValueString($_POST['nombre'], "text"),
                       
GetSQLValueString($_POST['apellidos'], "text"),
                       
GetSQLValueString($_POST['direccion'], "text"),
                       
GetSQLValueString($_POST['poblacion'], "text"),
                       
GetSQLValueString($_POST['cp'], "text"),
                       
GetSQLValueString($_POST['fechaNacimiento'], "date"),
                       
GetSQLValueString($_POST['lugarNacimiento'], "text"),
                       
GetSQLValueString($_POST['telefono'], "text"),
                       
GetSQLValueString($_POST['movil'], "text"),
                       
GetSQLValueString($_POST['email'], "text"),
                       
GetSQLValueString($_POST['estadoCivil'], "int"),
                       
GetSQLValueString($_POST['numHijos'], "int"),
                       
GetSQLValueString($_POST['nifCandidato'], "text")); 
}
else {
$updateSQL sprintf($update_string,
                       
GetSQLValueString($_POST['provincia'], "int"),
                       
GetSQLValueString($_POST['nombre'], "text"),
                       
GetSQLValueString($_POST['apellidos'], "text"),
                       
GetSQLValueString($_POST['direccion'], "text"),
                       
GetSQLValueString($_POST['poblacion'], "text"),
                       
GetSQLValueString($_POST['cp'], "text"),
                       
GetSQLValueString($_POST['fechaNacimiento'], "date"),
                       
GetSQLValueString($_POST['lugarNacimiento'], "text"),
                       
GetSQLValueString($_POST['telefono'], "text"),
                       
GetSQLValueString($_POST['movil'], "text"),
                       
GetSQLValueString($_POST['email'], "text"),
                       
GetSQLValueString($_POST['numHijos'], "int"),
                       
GetSQLValueString($_POST['nifCandidato'], "text")); 

Ciao
  #14 (permalink)  
Antiguo 16/06/2009, 07:52
 
Fecha de Ingreso: abril-2003
Mensajes: 1.129
Antigüedad: 21 años
Puntos: 34
Respuesta: Ayuda: Validar menu desplegable!!!

Hola una consulta, de un simple novato en PHP...

¿Qué son esos %s ?
__________________
elGastronomo
  #15 (permalink)  
Antiguo 16/06/2009, 08:00
Avatar de abidibo  
Fecha de Ingreso: mayo-2009
Mensajes: 121
Antigüedad: 15 años
Puntos: 7
Respuesta: Ayuda: Validar menu desplegable!!!

Mira, no lo se bien porque nunca utilizo esta manera de implementar query y string. Pero sirven para formatar una string despues de haberla definida. Es como decir tu definices esta string:

$string "UPDATE candidato SET idProvincia=%s, nombre=%s, apellidos=%s";

lo que quiere decir es que puedes poner otras string todo donde hay %s (que es un type specifier, o sea indica el tipo de cariable que puede estar alli mas o menos), por eso luego haces

sprintf($string,
GetSQLValueString($_POST['provincia'], "int"),
GetSQLValueString($_POST['nombre'], "text")
)

o sea vas a poner GetSQLValueString($_POST['provincia'], "int"), en lugar del primer %s, GetSQLValueString($_POST['nombre'], "text") en lugar del segundo %s, asì puedes tener el cuerpo de la string siempre lo mismo, y modificarla simplemente cambiando parte de ella, pero el cuerpo se queda igual.
Encontras algo mucho mas preciso aqui:
http://it2.php.net/sprintf
Chao!
  #16 (permalink)  
Antiguo 16/06/2009, 19:16
 
Fecha de Ingreso: abril-2003
Mensajes: 1.129
Antigüedad: 21 años
Puntos: 34
Respuesta: Ayuda: Validar menu desplegable!!!

Cita:
Iniciado por abidibo Ver Mensaje
Mira, no lo se bien porque nunca utilizo esta manera de implementar query y string. Pero sirven para formatar una string despues de haberla definida. Es como decir tu definices esta string:

$string "UPDATE candidato SET idProvincia=%s, nombre=%s, apellidos=%s";

lo que quiere decir es que puedes poner otras string todo donde hay %s (que es un type specifier, o sea indica el tipo de cariable que puede estar alli mas o menos), por eso luego haces

sprintf($string,
GetSQLValueString($_POST['provincia'], "int"),
GetSQLValueString($_POST['nombre'], "text")
)

o sea vas a poner GetSQLValueString($_POST['provincia'], "int"), en lugar del primer %s, GetSQLValueString($_POST['nombre'], "text") en lugar del segundo %s, asì puedes tener el cuerpo de la string siempre lo mismo, y modificarla simplemente cambiando parte de ella, pero el cuerpo se queda igual.
Encontras algo mucho mas preciso aqui:
http://it2.php.net/sprintf
Chao!
Gracias, iré a leerlo, y a ver si lo uso para algo que es cuando se termina de entender mejor las cosas :)

Thanks...
__________________
elGastronomo
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 10:24.