Foros del Web » Programando para Internet » Javascript » Frameworks JS »

Problemas al completar un campo

Estas en el tema de Problemas al completar un campo en el foro de Frameworks JS en Foros del Web. Buenos dias amigos del foro tengo 2 dudas y espero puedan ayudarme, veran tengo en el codigo que presento un formulario php que inserta datos ...
  #1 (permalink)  
Antiguo 23/11/2009, 10:08
Avatar de JuJoGuAl  
Fecha de Ingreso: julio-2009
Ubicación: Venezuela
Mensajes: 754
Antigüedad: 14 años, 9 meses
Puntos: 19
Pregunta Problemas al completar un campo

Buenos dias amigos del foro tengo 2 dudas y espero puedan ayudarme, veran tengo en el codigo que presento un formulario php que inserta datos a una bd de mysql, ahora bien tengo 1 campo que se llama numero de "numero de boveda" en ese campo para las bovedas dobles se coloca algo como 001a o 001b, bien dentro de ese campo yo tengo la funcion LPAD($Numero,4,'0') para completar los 4 digitos, ahora como el campo es Int+Char arroja un error, y quisiera saber como puedo hacer para utilizar esa instruccion, es decir me complete el digito con sus 4 digitos y adicionalmente deje la letra que se le fue asignado, en la bd el campo NumerodeBoveda es Char para poder validar esto...

De no poder trabajar de la forma que deseo me sugieren alguna???

Mi otro problema es que al insertar los datos y el usuario del sistema usa F5 o actualiza la pagina los datos vuelven a insertarse, como hago para que limpe los datos una vez ya insertados, yo uso la funcion unset($Muerte,$Entierro,$Resultado,$Bovedas,$ID,$N ombre); pero no me la reconoce o no la usa porque igual mantiene el valor de las variables, algun consejo???

Adjunto el Codigo del formulario:

Código PHP:
<?php
<form method="POST" action="?ir=Formulario_Inhumacion" onSubmit="return checkform(this)">
                 <
table border="0" width="100%">
                        <
tr>
                            <
td class="item">Fecha de Muerte:</td>
                            <
td>
                            <
script type="text/javascript">
                                    
jQuery(document).ready(function() {
                                    
jQuery("#dateDefault").dynDateTime(); //defaults
                                    
});
                            
</script>
                            <input type="text" name="Fmuerte" size="20" id="dateDefault"/>
                            </td>

                            <td class="item">Fecha de Enterramiento:</td>
                            <td>
                            <script type="text/javascript">
                                    jQuery(document).ready(function() {
                                    jQuery("#dateDefault1").dynDateTime(); //defaults
                                    });
                            </script>
                            <input type="text" name="Fentierro" size="20" id="dateDefault1"/>
                            </td>
                        </tr>
                 </table>
                 <table border="0" width="100%">
                        <tr>
                            <td class="item">Nombre y Apellido:</td>
                            <td><input type="text" size="50" name="Nombre"></td>
                            <td class="item">Edad:</td>
                            <td><input type="text" size="10" name="Edad"></td>
                        </tr>
                 </table>
                 <table border="0" width="100%">
                        <tr>
                            <td class="item">Permiso de Inhumacion:</td>
                            <td><input type="text" size="5" name="Inhumacion"></td>
                            <td class="item">Defuncion Local:</td>
                            <td><input type="text" size="5" name="Deflocal"></td>
                        </tr>
                 </table>
                 <table border="0" width="100%">
                        <tr>
                            <td class="item">Numero de Boveda:</td>
                            <td><input type="text" size="5" name="Numboveda"></td>
                            
                            <td class="item">Tipo de Boveda:</td>
                            <td>
                            <select size="1" name="Tipo">
                                        <option>SENCILLA</option>
                                        <option>DOBLE</option>
                                        <option>INFANTL</option>
                                        <option>RESTOS</option>
                                        <option>RECIEN NACIDO</option>
                                </select>
                            </td>
                            
                            <td class="item">Bloque:</td>
                            <td><input type="text" size="5" name="Bloque"></td>
                        </tr>
                 </table>
                 <table border="0" width="100%">
                        <tr>
                            <td class="item">Parroquia donde Murio:</td>
                            <td><input type="text" size="35" name="Parro"></td>
                            
                            <td class="item">Exonerado ?:</td>
                            <td>
                                <select size="1" name="Exonerado">
                                        <option>NO</option>
                                        <option>SI</option>
                                </select>
                            </td>
                        </tr>
                 </table>
                 <BR><BR>
                 <table border="0" width="100%">
                        <tr>
                            <td width="15%"></td>
                            <td width="20%"><input type="submit" name ="submit" value="Ingresar"></td>
                            <td width="30%"><input type="reset" name ="clear" value="Limpiar"></td>
                        </tr>
                 </table>
                 </form>
<?php
//Recibo las Variables del Formulario
$Muerte STRTOUPPER($_POST['Fmuerte']);
$Entierro STRTOUPPER($_POST['Fentierro']);
$Nombre STRTOUPPER($_POST['Nombre']);
$Edad STRTOUPPER($_POST['Edad']);
$Inhumacion STRTOUPPER($_POST['Inhumacion']);
$Local STRTOUPPER($_POST['Deflocal']);
$Numero STRTOUPPER($_POST['Numboveda']);
$Tipo STRTOUPPER($_POST['Tipo']);
$Bloque STRTOUPPER($_POST['Bloque']);
$Parro STRTOUPPER($_POST['Parro']);
$Gratis STRTOUPPER($_POST['Exonerado']);
if(
$Tipo=='RECIEN NACIDO')
{
$Tipo='RECIEN_NACIDO';
}

if(
$Gratis=="SI")
{
 
$Gratis=1;
}
else
{
 
$Gratis=0;
}
if (
$Muerte=="" and $Entierro=="")
{
}
else
{
function 
cambiarFormatoFecha($fecha)
{
    list(
$dia,$mes,$ano)=explode("/",$fecha);
    return 
$ano."-".$mes."-".$dia;
}

 
$Muerte=cambiarFormatoFecha($Muerte);
 
$Entierro=cambiarFormatoFecha($Entierro);
 
$Num mysql_query("SELECT * FROM difuntos_totales");
 
$IDNum=mysql_num_rows($Num);
 
$ID=$IDNum+1;
 
$Bovedas=mysql_query("UPDATE bovedas_total_$Tipo SET Estado='Ocupada' WHERE Codigo=LPAD($Numero,4,'0')");
 
$Resultado "INSERT INTO difuntos_totales (`Difunto_ID`,`FMuerte`,`FEnterramiento`,`Nombre_Apellido`,`Edad`,`Inhumacion`,`Defuncion_Local`,`Parroquia`,`Cod_Boveda`,`Tipo_Boveda`,`Bloque`,`Gratis`) VALUES ('$ID','$Muerte','$Entierro','$Nombre','$Edad','$Inhumacion','$Local','$Parro',LPAD($Numero,4,'0'),'$Tipo','$Bloque','$Gratis')";
 if (
mysql_query($Resultado))
 {
 echo 
"<p class=\"titulo01\">Registro Añadido Exitosamente!!!</p>";
 }
 else
 {
 echo 
"<p class=\"titulo01\">Error #".mysql_errno().": <font color=#FF0000>".mysql_error()."</font><br></p>";
 }
 unset(
$Muerte,$Entierro,$Resultado,$Bovedas,$ID,$Nombre);
 }
?>
?>

Última edición por JuJoGuAl; 23/11/2009 a las 10:20
  #2 (permalink)  
Antiguo 23/11/2009, 10:23
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
Tema movido desde PHP a AJAX
  #3 (permalink)  
Antiguo 23/11/2009, 10:24
 
Fecha de Ingreso: septiembre-2009
Mensajes: 81
Antigüedad: 14 años, 7 meses
Puntos: 1
Respuesta: Problemas al completar un campo

1er problema:

A lo mejor es una tonteria pero no podrias transformar &numero a string antes de hacer LPAD($Numero,4,'0')???

2o problema:

La idea seria crear una variable de session o una cookie para controlar k no se haga la insercion mas de una vez, algo asi:

Código PHP:
if (isset($_COOKIE['control'])){
  if (
$_COOKIE['control']=="0"){
    if (
//insercion){
      
$_COOKIE['control']="1";
    }
  }

y en el script desde el k llamas al script de insercion deberias crear la cookie y darle valor 0
  #4 (permalink)  
Antiguo 23/11/2009, 10:30
Avatar de JuJoGuAl  
Fecha de Ingreso: julio-2009
Ubicación: Venezuela
Mensajes: 754
Antigüedad: 14 años, 9 meses
Puntos: 19
Respuesta: Problemas al completar un campo

Cita:
Iniciado por GatorV Ver Mensaje
Tema movido desde PHP a AJAX
es php porque lo mueves a AJAX? no entiendo....

Cita:
Iniciado por catalon Ver Mensaje
1er problema:

A lo mejor es una tonteria pero no podrias transformar &numero a string antes de hacer LPAD($Numero,4,'0')???

2o problema:

La idea seria crear una variable de session o una cookie para controlar k no se haga la insercion mas de una vez, algo asi:

Código PHP:
if (isset($_COOKIE['control'])){
  if (
$_COOKIE['control']=="0"){
    if (
//insercion){
      
$_COOKIE['control']="1";
    }
  }

y en el script desde el k llamas al script de insercion deberias crear la cookie y darle valor 0

No entiendo lo de la 1ra variables pues veras es un campo donde metes tanto char como int pero si llegan a poner por ejemplo "01a" quiero q cuando se guarde en la bd quede "0001-A" por eso uso el LPAD, ahora bien lo de la cookies tambien quede o,O podrias explicarme un poco mejor? gracias
  #5 (permalink)  
Antiguo 23/11/2009, 10:57
 
Fecha de Ingreso: septiembre-2009
Mensajes: 81
Antigüedad: 14 años, 7 meses
Puntos: 1
Respuesta: Problemas al completar un campo

Cita:
Iniciado por JuJoGuAl Ver Mensaje
es php porque lo mueves a AJAX? no entiendo....




No entiendo lo de la 1ra variables pues veras es un campo donde metes tanto char como int pero si llegan a poner por ejemplo "01a" quiero q cuando se guarde en la bd quede "0001-A" por eso uso el LPAD, ahora bien lo de la cookies tambien quede o,O podrias explicarme un poco mejor? gracias
vale, sorry a lo mejor me explico como el culo xDDD

en lo primero cuando tu guardas la variable final en la base de datos la guardas en un campo k es tipo char no? o cualkier otro tipo texto. Si te da error al hacer lpad() pk te dice k es de tipo int no podrias pasarla primero a cadena? no se si me explico... a lo mejor soy yo el k no lo ha entendido xDD

En cuanto a lo segundo pues es facil. Cuando llamas al script de insercion crearas una variable cookie k estara siempre hay... es decir k da= k el user cambie de pagina k siempre estara. Por lo tanto lo k haces es insertar dependiendo del valor de esa variable. Cuando la cookie vale 0 puedes insertar, y cuando no vale 0 pues no inserta. Te lo explico desde el codigo:

Código PHP:
if (isset($_COOKIE['control'])){//comprobamos k la variable exista, si no existe no se ara la insercion asi k asegurate de crearla con valor 0 en el script de llamada
  
if ($_COOKIE['control']=="0"){//aki comprobamos k el valor sea 0, basicamente es como si le diesemos permiso, si vale 0 esk tiene permiso para hacer la inserion
    
if (//insercion){//si se hace la insercion cambiamos el valor de la cookie de control a 1
      
$_COOKIE['control']="1";
    }
  }

Por lo tanto una vez hecha la insercion la cookie valdra 1, si el user hace F5 la cookie seguira valiendo 1 por lo tanto no realizara la insercion.

Creo k ahora a kedado mas claro ;)
  #6 (permalink)  
Antiguo 23/11/2009, 11:07
Avatar de JuJoGuAl  
Fecha de Ingreso: julio-2009
Ubicación: Venezuela
Mensajes: 754
Antigüedad: 14 años, 9 meses
Puntos: 19
Respuesta: Problemas al completar un campo

Pues esa variable es char lo que pasa es que le cargo "INT" pues el lpad da error debido a que estoy usando lpad (completa con 0) y esa funcion solo trabaja con INT es decir da error al encontrar la "a" o "b" entonces lo que busco es si puedo separar el A de los numeros hacer el lapd y luego unir todo eso antes de ejecutar el sql...

Para lo segundo e entendio bien ahora cuando dices que la creo uso esta setencia?
SETCOOKIE["control","0",....] que tiempo le doy?? o como creo una cookie sin asignar tiempo, es que yo cuando creo cookies solo trabajo de esa manera....
  #7 (permalink)  
Antiguo 23/11/2009, 11:21
 
Fecha de Ingreso: septiembre-2009
Mensajes: 81
Antigüedad: 14 años, 7 meses
Puntos: 1
Respuesta: Problemas al completar un campo

1o:
lo k deberias hacer es crear la cadena final en el php en lugar de hacerlo en el sql
Tienes una funcion igual a lpad() pero en php, puedes mirar como funciona aki:
php.net/manual/en/function.str-pad.php

2o:
Si, seteas la cookie como dices. El tiempo depende de ti... si kieres k este "para siempre" dale un par de años xDD otra cosa esk en lugar de darle valor 1 cuando haces la insercion podrias tambien resetear la cookie con tiempo negativo, eso eliminaria la cookie y te daria el mismo resultado.
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 15:00.