Ver Mensaje Individual
  #1 (permalink)  
Antiguo 01/03/2009, 17:40
lana27
 
Fecha de Ingreso: septiembre-2007
Mensajes: 73
Antigüedad: 16 años, 8 meses
Puntos: 0
Duda de cómo validar un mismo formulario para varias acciones

Hola, mi duda en la siguiente tengo una página en donde realizo el mantenimiento de usuarios (Nuevo, Modificación y Borrado).

Utilizo solo un formulario en donde depende de la accion =(Modifica o Nuevo) realizo las validaciones según el caso. Utilizo javascript para asegurarme de que los campos que son requeridos sean ingresados.

Pero es ahi donde viene cómo puedo hacer para que a la hora de ingresar al método (Nuevo, Modifica) si hay algun error no me borre todos los datos del formulario que ya se ingresaron por el error, he tratado de utilizar el $_POST según el método y que lo mande a cada campo, pero no me funciona..

Aquí pongo el código:

Código HTML:
<table width="800" align="center" cellpadding="0" cellspacing="0">
      
      <tr>
        <td colspan="2">&nbsp;</td>
  </tr>
      <tr>
        <td></td>
        <td><div align="right">* Datos requeridos por el sistema</div></td>
      </tr>
      <tr>
        <td colspan="2">
        	<form id="frmusuario" name="frmusuario" method="post" action="<?php  if($_GET['accion']=="mostrar"){print "$PHP_SELF?accion=modifica";}else{print "$PHP_SELF?accion=hacernuevo";} ?>">
            <table width="561" height="190" align="center" cellpadding="0" cellspacing="4" class="box" >
              <tr>
                <td width="551" height="180"><table width="483" align="center" cellpadding="0" cellspacing="0">
                    <tr>
                      <td>Nombre</td>
                      <td><label>
                        <input name="nomcon" type="text" class="INPUT" id="nomcon" value="<? echo $nomcon?>" size="45" maxlength="30"/>
                      *</label></td>
                    </tr>
                    <tr>
                      <td>Apellido</td>
                      <td><label>
                        <input name="apecon" type="text" class="INPUT" id="apecon" value="<? echo $apecon?>" size="45" maxlength="30"/>
                      *</label></td>
                    </tr>
                    <tr>
                      <td>Correo electrónico</td>
                      <td><label>
                        <input name="dircor" type="text" class="INPUT" id="dircor" value="<? echo $dircor?>" size="45" maxlength="50"/>
                      *</label></td>
                    </tr>
                    <tr>
                      <td width="183">Usuario</td>
                      <td width="298"><label>
                        <input name="ideusu" type="text" class="INPUT" id="ideusu" value="<? echo $ideusu?>" size="30" maxlength="20"  />
                      *</label></td>
                    </tr>
                    <tr>
                      <td>Contrase&ntilde;a</td>
                      <td><label>
                      <input name="conusu" type="password" class="INPUT" id="conusu" value="<? echo $conusu?>" size="30" maxlength="20" />
                      *</label></td>
                    </tr>
                    <tr>
                      <td>Confirmar contrase&ntilde;a</td>
                      <td><label>
                        <input name="conusu2" type="password" class="INPUT" id="conusu2" value="<? echo $conusu?>" size="30" maxlength="20"/>
                      *</label></td>
                    </tr>
                    <tr>
                      <td>Nivel</td>
                      <td><label>
                        <select name="nivusu" id="nivusu" class="select">
                          <option value="1">Administrador</option>
                          <option value="2">Usuario</option>
                      </select>
                      </label></td>
                    </tr>
                    <tr>
                      <td>&nbsp;</td>
                    <td><div align="right">
                          <input name="codusu" type="hidden" id="codusu" value="<? echo $codusu ?>" />
                          <input type="button" name="enviar" id="enviar" value="Aceptar" class="button" onClick="javascript:validate();" />
                          <input name="limpiar" type="reset" class="button" id="limpiar" value="Limpiar" />
                      </div></td>
                    </tr>
                    
                </table></td>
              </tr>
            </table>
            <div align="center"><span class="mensaje">
            <?php
				echo $error_accion_ms[$error_cod];
			?>
            </span></div>
   		  </form> </td>
      </tr>
      <tr>
        <td colspan="2" class="normal"><h3>Usuarios del sistema</h3></td>
      </tr>
      <tr>
        <td colspan="2"><table width="773" height="50" align="center" cellpadding="0" cellspacing="4" class="box" >
        <tr>
              <td width="763" height="40"><table width="779" align="center" cellpadding="0" cellspacing="0">
				<tr>
                    <td width="60" class="boxtitle">Modificar</td>
                    <td width="49" class="boxtitle">Eliminar</td>
                    <td width="228" class="boxtitle">Nombre</td>
                    <td width="195" class="boxtitle">Correo electr&oacute;nico</td>
                    <td width="106" class="boxtitle">Usuario</td>
                    <td width="70" class="boxtitle">Nivel</td>
                    <td width="69" class="boxtitle">Creaci&oacute;n</td>
				</tr>
					<?php
						while($resultados = mysql_fetch_array($usuario_consulta)) {
					 ?>
                  <tr>
                    <td><div align="center"><?php print "<a href=\"$pag?accion=mostrar&id=$resultados[codusu]\">"; ?><img src="img/modificar.gif" alt="Modificar" width="20" height="20" border="0" class="img"/ ></div></td>
                    <td><div align="center"><?php print "<a href=\"$pag?accion=borrar&id=$resultados[codusu]\">"; ?><img src="img/eliminar.gif" alt="Eliminar" width="20" height="20" border="0" class="img"/></a></div> </td>
                    <td><?php echo $resultados[nomusu];?></td>
                    <td><?php echo $resultados[dircor];?></td>
                    <td><?php echo $resultados[ideusu];?></td>
                    <td><?php echo $resultados[nivusu];?></td>
                    <td><?php echo $resultados[feiusu];?>
                    <div align="right"></div></td>
                  </tr>
                  <?php 
						}//fin del while de la consulta de usuarios
						mysql_free_result($usuario_consulta);
				  ?>
              </table></td>
          </tr>
        </table></td>
      </tr>
      <tr>
        <td colspan="2">&nbsp;</td>
      </tr>
      
      <tr>
        <td colspan="2"> </td>
      </tr>
    </table> 
Código PHP Nuevo y Modifica
Código PHP:
    // 3. Método que modifica registros de usuarios de la base de datos
    
if ($_GET['accion']=="modifica"){
    
        
$post_codusu=$_POST['codusu'];
        
$post_nomcon=$_POST['nomcon'];
        
$post_apecon=$_POST['apecon'];
        
$post_dircor=$_POST['dircor'];
        
$post_ideusu=$_POST['ideusu'];
        
$post_conusu=$_POST['conusu'];
        
$post_conusu2=$_POST['conusu2'];
        
$post_nivusu=$_POST['nivusu'];

        if (
$post_nomcon=="" or $post_apecon=="" or $post_dircor=="" or $post_ideusu=="" or $post_conusu=="" or $post_conusu2=="") {
            
header ("Location: $pag?error=1");
            exit;
        }
        
        
mysql_query("UPDATE $tabla_usudat SET ideusu='$post_ideusu', conusu='$post_conusu', nivusu='$post_nivusu' WHERE codusu=$post_codusu") or die(mysql_error());
        
mysql_close ();
        
header ("Location: $pag");
        exit;
    }    
    
    
// 3. Método que inserta registros de usuarios de la base de datos
    
if ($_GET['accion']=="hacernuevo"){
    
        
$post_codusu=$_POST['codusu'];
        
$post_nomcon=$_POST['nomcon'];
        echo 
$post_nomcon;
        
$post_apecon=$_POST['apecon'];
        
$post_dircor=$_POST['dircor'];
        
$post_ideusu=$_POST['ideusu'];
        
$post_conusu=$_POST['conusu'];
        
$post_conusu2=$_POST['conusu2'];
        
$post_nivusu=$_POST['nivusu'];

        if (
$post_nomcon=="" or $post_apecon=="" or $post_dircor=="" or $post_ideusu=="" or $post_conusu=="" or $post_conusu2=="") {
            
header ("Location: $pag?error=1");
            exit;
        }
        if (
$post_codusu != $post_codusu2){
            
header ("Location: $pag?error=2");
            exit;
        }

        
$usuarios_consulta mysql_query("SELECT codusu FROM $tabla_usudat WHERE ideusu='$post_ideusu'") or die(mysql_error());
        
$total_encontrados mysql_num_rows ($usuarios_consulta);
        
mysql_free_result($usuarios_consulta);
        
        if (
$total_encontrados != 0) {
            
header ("Location: $pag?error=4");
            exit;
        }
        
        
$post_ideusu=stripslashes($post_ideusu);
        
$post_conusu md5($pconusu);
        
mysql_query("INSERT INTO $tabla_usudat values('','$post_ideusu','$post_conusu','$post_nivusu')") or die(mysql_error());
        
mysql_close();
        
header ("Location: $pag");
        exit;
    } 
Gracias por la ayuda