Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] PHP OO Jquery datepicker no funciona en un formulario PHP

Estas en el tema de Jquery datepicker no funciona en un formulario PHP en el foro de PHP en Foros del Web. Buenas Tardes, me presento soy Jose soy nuevo y vengo humildemente a pedir ayuda (no se si sea el foro adecuado si no lo es ...
  #1 (permalink)  
Antiguo 05/07/2014, 16:52
 
Fecha de Ingreso: julio-2014
Mensajes: 116
Antigüedad: 9 años, 9 meses
Puntos: 1
Jquery datepicker no funciona en un formulario PHP

Buenas Tardes, me presento soy Jose soy nuevo y vengo humildemente a pedir ayuda (no se si sea el foro adecuado si no lo es algun admin se encargara)estoy en mi practica laboral y debo hacer cambios a un archivo
este archivo introduce datos a una base de datos, todo bien hasta que debi pasar la partes de dicen fechas (fechas de nacimiento fechas de toma muestra ETC.) de usar varias a cajas a un textbox que usa Jquery Datepicker, el datepicker funciona bien
pero al momento de ingresar el formulario a la base de datos este ingresa todo lo que habia en el datepicker en nulo,a la primera fecha le agregue "date " quedando en " GetSQLValueString(date("Y-m-d",($HTTP_POST_VARS['anonac'])), "date"),"
lo unico que logre es que ingrese la fecha default de todo PC (31-12-1969),
no se que mas hacer, como el codigo es largo , ingresare partes aqui y dejare un link para ver el codigo completo

[URL="https://mega.co.nz/#!ppgyxIpA!JaOEkuNG3LqQp03TQi_Q7f5wD5Z4_pcDQPh-dNtToyc"]Archivo Completo[/URL]

Extracto de codigo que ingresa a BD

Código:
if ((isset($HTTP_POST_VARS["MM_insert"])) && ($HTTP_POST_VARS["MM_insert"] == "form1")) {
  $insertSQL = sprintf("INSERT INTO hospnot (fechadig, usuario, nompac, apellpac, fnac, edad, sexo, rut, dv, direc, comuna, consultorio, nommad, fono, otrofono, finghosp, nficha, finidiarr, psangre, psotro, ftomamuestra, tecdiaglab, resultado, nomhosp, unilab, respnom, respfono, respfax, respmail, respfenvmues, ispresultado, region, emeses) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)",
                       GetSQLValueString(date("Y-m-d H:i:s"), "date"),
                       GetSQLValueString($HTTP_POST_VARS['usuario'], "text"),
                       GetSQLValueString($HTTP_POST_VARS['nombres'], "text"),
                       GetSQLValueString($HTTP_POST_VARS['apellidos'], "text"),
                   //  GetSQLValueString($HTTP_POST_VARS['anonac']."-".$HTTP_POST_VARS['mesnac']."-".$HTTP_POST_VARS['dianac'], "date"),
                       GetSQLValueString(date("Y-m-d",($HTTP_POST_VARS['anonac'])), "date"),
					  // GetSQLValueString($HTTP_POST_VARS['anonac'], "date"),
					   GetSQLValueString($HTTP_POST_VARS['edad'], "int"),
                       GetSQLValueString($HTTP_POST_VARS['sexo'], "text"),
                       GetSQLValueString($HTTP_POST_VARS['rut'], "int"),
                       GetSQLValueString($HTTP_POST_VARS['dv'], "text"),
                       GetSQLValueString($HTTP_POST_VARS['direccion'], "text"),
                       GetSQLValueString($HTTP_POST_VARS['comuna'], "text"),
                       GetSQLValueString($HTTP_POST_VARS['consultorio'], "text"),
                       GetSQLValueString($HTTP_POST_VARS['nomadre'], "text"),
                       GetSQLValueString($HTTP_POST_VARS['fonomad'], "text"),
                       GetSQLValueString($HTTP_POST_VARS['ofonomad'], "text"),
                      // GetSQLValueString($HTTP_POST_VARS['anoing']."-".$HTTP_POST_VARS['mesing']."-".$HTTP_POST_VARS['diaing'], "date"),
                       GetSQLValueString($HTTP_POST_VARS['anoing'], "date"),
					   GetSQLValueString($HTTP_POST_VARS['nfichaclin'], "int"),
                      // GetSQLValueString($HTTP_POST_VARS['anodiarr']."-".$HTTP_POST_VARS['mesdiarr']."-".$HTTP_POST_VARS['diadiarr'], "date"),
                       GetSQLValueString($HTTP_POST_VARS['anodiarr'], "date"),
					   GetSQLValueString($HTTP_POST_VARS['sangre'], "text"),
                       GetSQLValueString($HTTP_POST_VARS['sangreotro'], "text"),
                      // GetSQLValueString($HTTP_POST_VARS['anotom']."-".$HTTP_POST_VARS['mestom']."-".$HTTP_POST_VARS['diatom'], "date"),
                       GetSQLValueString($HTTP_POST_VARS['anotom'], "date"),  
					   GetSQLValueString($HTTP_POST_VARS['tecdiag'], "text"),
                       GetSQLValueString($HTTP_POST_VARS['resultado'], "text"),
                       GetSQLValueString($HTTP_POST_VARS['nomhosp'], "text"),
                       GetSQLValueString($HTTP_POST_VARS['unilab'], "text"),
                       GetSQLValueString($HTTP_POST_VARS['nomresp'], "text"),
                       GetSQLValueString($HTTP_POST_VARS['fonoresp'], "text"),
                       GetSQLValueString($HTTP_POST_VARS['faxresp'], "text"),
                       GetSQLValueString($HTTP_POST_VARS['mailresp'], "text"),
                      // GetSQLValueString($HTTP_POST_VARS['anoenv']."-".$HTTP_POST_VARS['mesenv']."-".$HTTP_POST_VARS['diaenv'], "date"),
                       GetSQLValueString($HTTP_POST_VARS['anoenv'], "date"),   
					   GetSQLValueString($HTTP_POST_VARS['ispresultado'], "text"),
                       GetSQLValueString($HTTP_POST_VARS['region'], "int"),
                       GetSQLValueString($HTTP_POST_VARS['meses'], "int"));

  mysql_select_db($database_brotediarreas, $brotediarreas);
  $Result1 = mysql_query($insertSQL, $brotediarreas) or die(mysql_error());

--Codigo Jquery Datepicker

Código:
<link rel="stylesheet" href="jquery-ui-1.10.4/development-bundle/themes/redmond/jquery.ui.all.css" rel="stylesheet" type="text/css"/>
    <script src="jquery-ui-1.10.4/js/jquery-1.10.2.js"></script>
	<script src="jquery-ui-1.10.4/development-bundle/ui/jquery.ui.core.js"></script>
	<script src="jquery-ui-1.10.4/development-bundle/ui/jquery.ui.widget.js"></script>
	<script src="jquery-ui-1.10.4/development-bundle/ui/jquery.ui.datepicker.js"></script>
    <script src="jquery-ui-1.10.4/development-bundle/ui/i18n/jquery.ui.datepicker-es.js"></script>
<link rel="stylesheet" href="jquery-ui-1.10.4/development-bundle/demos/demos.css" rel="stylesheet" type="text/css"/>
  
    <script type="text/javascript">
$(document).ready(function(e) {
    $("#anonac").datepicker({dateFormat: 'yy-mm-dd', changeMonth: true, changeYear: true, yearRange: '-6:+0'});
});


$(document).ready(function(e) {
    $("#anoing").datepicker();
});


$(document).ready(function(e) {
    $("#anodiarr").datepicker();
});

$(document).ready(function(e) {
    $("#anotom").datepicker();
});

$(document).ready(function(e) {
    $("#anoenv").datepicker();
});


</script>
ejemplo de input
Código:
  <tr> 
            <td><font size="2" face="Arial Narrow"><font color="#FF0000">Fecha 
              de nacimiento:</font> </span> <input type="text" name="anonac"  size="15" id="anonac"/></font>
              </td>
          </tr>

desearia poner todo el codigo, pero es muy largo, perdon por usar su tiempo, ojala alguien pueda ayudarme porque es urgente
  #2 (permalink)  
Antiguo 05/07/2014, 17:45
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Jquery datepicker no funciona en un formulario PHP

Primero que nada, $HTTP_POST_VARS es obsoleto y, en su lugar, deberías usar $_POST.

Luego, se supone que jQuery te debería devolver la fecha en formato yy-mm-dd, porque así lo estás especificando en el script; pero en PHP tienes esto:

Código PHP:
Ver original
  1. GetSQLValueString(date("Y-m-d",($HTTP_POST_VARS['anonac'])), "date"),

No es necesario usar la función date() y, de hecho, debería generarte un error porque el segundo parámetro debería ser una fecha en formato timestamp, no una cadena.

Esto debería ser suficiente para guardar bien la fecha:

Código PHP:
Ver original
  1. GetSQLValueString(date("Y-m-d",($_POST['anonac'])), "date"),
__________________
- León, Guanajuato
- GV-Foto
  #3 (permalink)  
Antiguo 05/07/2014, 18:51
 
Fecha de Ingreso: julio-2014
Mensajes: 116
Antigüedad: 9 años, 9 meses
Puntos: 1
Respuesta: Jquery datepicker no funciona en un formulario PHP

Cita:
Iniciado por Triby Ver Mensaje
Primero que nada, $HTTP_POST_VARS es obsoleto y, en su lugar, deberías usar $_POST.

Luego, se supone que jQuery te debería devolver la fecha en formato yy-mm-dd, porque así lo estás especificando en el script; pero en PHP tienes esto:

Código PHP:
Ver original
  1. GetSQLValueString(date("Y-m-d",($HTTP_POST_VARS['anonac'])), "date"),

No es necesario usar la función date() y, de hecho, debería generarte un error porque el segundo parámetro debería ser una fecha en formato timestamp, no una cadena.

Esto debería ser suficiente para guardar bien la fecha:

Código PHP:
Ver original
  1. GetSQLValueString(date("Y-m-d",($_POST['anonac'])), "date"),
y como se veria sin date? a todo esto los demas los probe de manera simple
por ejemplo el segundo
Código PHP:
Ver original
  1. GetSQLValueString($HTTP_POST_VARS['anoing'], "date"),

esos solo salen "NULL" al momento de enviarlos a la BD
  #4 (permalink)  
Antiguo 05/07/2014, 19:28
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Jquery datepicker no funciona en un formulario PHP

Te repito, no deberías usar $HTTP_POST_VARS, sino $_POST, lee esto: http://www.php.net/manual/es/reserve...ables.post.php

Antes de procesar el formulario pon esta línea en tu script PHP:

Código PHP:
Ver original
  1. var_dump($_POST);

Copia el resultado y pégalo aquí.
__________________
- León, Guanajuato
- GV-Foto
  #5 (permalink)  
Antiguo 05/07/2014, 19:55
 
Fecha de Ingreso: julio-2014
Mensajes: 116
Antigüedad: 9 años, 9 meses
Puntos: 1
Respuesta: Jquery datepicker no funciona en un formulario PHP

Cita:
Iniciado por jmfmagnum Ver Mensaje
y como se veria sin date? a todo esto los demas los probe de manera simple
por ejemplo el segundo
Código PHP:
Ver original
  1. GetSQLValueString($HTTP_POST_VARS['anoing'], "date"),

esos solo salen "NULL" al momento de enviarlos a la BD
Cita:
Iniciado por Triby Ver Mensaje
Te repito, no deberías usar $HTTP_POST_VARS, sino $_POST, lee esto: [url]http://www.php.net/manual/es/reserved.variables.post.php[/url]

Antes de procesar el formulario pon esta línea en tu script PHP:

Código PHP:
Ver original
  1. var_dump($_POST);

Copia el resultado y pégalo aquí.
si entendi , lo siento es que es raro que el $HTTP_POST_VARS
funciona con los otros textbox del formulario eso me hace sospechar
  #6 (permalink)  
Antiguo 05/07/2014, 20:17
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Jquery datepicker no funciona en un formulario PHP

jmfmagnum, debes reemplazar todos los $HTTP_POST_VARS por $_POST, no solo los de las fechas, evítate problemas posteriores.
__________________
- León, Guanajuato
- GV-Foto
  #7 (permalink)  
Antiguo 05/07/2014, 21:07
 
Fecha de Ingreso: julio-2014
Mensajes: 116
Antigüedad: 9 años, 9 meses
Puntos: 1
Respuesta: Jquery datepicker no funciona en un formulario PHP

Bueno, gracias por su tiempo, vere si puedo probarlo, normalmente deberia esperar al lunes tratare de hacerlo antes
  #8 (permalink)  
Antiguo 06/07/2014, 11:43
 
Fecha de Ingreso: julio-2014
Mensajes: 116
Antigüedad: 9 años, 9 meses
Puntos: 1
Respuesta: Jquery datepicker no funciona en un formulario PHP

tambien aprovechare de cambiar el $HTTP_SERVER_VARS
por $_SERVER
  #9 (permalink)  
Antiguo 07/07/2014, 09:29
 
Fecha de Ingreso: julio-2014
Mensajes: 116
Antigüedad: 9 años, 9 meses
Puntos: 1
Exclamación Respuesta: Jquery datepicker no funciona en un formulario PHP

Bueno, hize la prueba y no funciono, el date sigue apareciendo "NULL" en las fechas
como esta
Código PHP:
Ver original
  1. GetSQLValueString($_POST['anoing'], "date"),

y la que mostre antes sigue saliendo "1969-12-31"
Código PHP:
Ver original
  1. GetSQLValueString(date("Y-m-d",($_POST['anonac'])), "date"),

creo que debe ser por culpa del Javascript que es para validarlo ya que esta hecho para el anterior modo que usaba 3 <select> uno para dia , mes y año en vez de un <textbox>

Código Javascript:
Ver original
  1. <script language="JavaScript" type="text/JavaScript">
  2. <!--
  3. function MM_findObj(n, d) { //v4.01
  4.   var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
  5.     d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  6.   if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  7.   for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  8.   if(!x && d.getElementById) x=d.getElementById(n); return x;
  9. }
  10.  
  11. //--------------funcion validar forma -----------------
  12. function MM_validateForm() { //v4.0
  13.   var i,p,q,nm,test,num,min,max,errors='',args=MM_validateForm.arguments;
  14.   for (i=0; i<(args.length-2); i+=3) { test=args[i+2]; val=MM_findObj(args[i]);
  15.     if (val) { nm=val.name; if ((val=val.value)!="") {
  16.       if (test.indexOf('isEmail')!=-1) { p=val.indexOf('@');
  17.         if (p<1 || p==(val.length-1)) errors+='- '+nm+' Debe contener una dirección de correo.\n';
  18.       } else if (test!='R') { num = parseFloat(val);
  19.         if (isNaN(val)) errors+='- '+nm+' must contain a number.\n';
  20.         if (test.indexOf('inRange') != -1) { p=test.indexOf(':');
  21.           min=test.substring(8,p); max=test.substring(p+1);
  22.           if (num<min || max<num) errors+='- '+nm+' Debe contenr un numero entre '+min+' Y '+max+'.\n';
  23.     } } } else if (test.charAt(0) == 'R') errors += '- '+nm+' es requerido .\n'; }
  24.   } if (errors) alert('Los siquientes errores ocurrieron:\n'+errors);
  25.   document.MM_returnValue = (errors == '');
  26. }
  27. //----------------------------------------------------------

y la cabecera del <table> donde va el formulario

Código HTML:
Ver original
  1. <body bgcolor="#91CBFB" leftmargin="6" marginwidth="50">
  2. <form action="<?php echo $editFormAction; ?>" method="POST" name="form1" onSubmit="MM_validateForm('nombres','','R','apellidos','','R','','RinRange1:31','RinRange1:12','anonac','','R','rut','','RisNum','dv','','R','consultorio','','R','comuna','','R','sexo','','R','nfichaclin','','R','nomresp','','R','fonoresp','','R','mailresp','','R','diaenv','','RinRange1:31','mesenv','','RinRange1:12','anoenv','','R','diaing','','RinRange1:31','mesing','','RinRange1:12','anoing','','R','diadiarr','','RinRange1:31','mesdiarr','','RinRange1:12','anodiarr','','R','diatom','','RinRange1:31','mestom','','RinRange1:12','anotom','','R');return document.MM_returnValue"><font color="#003399" size="2" face="Times New Roman, Times, serif">
  3.   <table width="603" height="452" align="center" border="0" cellpadding="0" cellspacing="0">
  4.     <tr>

pido humildemente algo de ayuda en esto
  #10 (permalink)  
Antiguo 07/07/2014, 09:44
Avatar de Eleazan  
Fecha de Ingreso: abril-2008
Ubicación: Ibiza
Mensajes: 1.879
Antigüedad: 16 años
Puntos: 326
Respuesta: Jquery datepicker no funciona en un formulario PHP

¿Te da algún error de js? Puedes comprobarlo en la consola de g.chrome, o el firebug de mozilla...

Y cuando lo hagas, puedes probar a escribir directamente en la consola esto:
Código Javascript:
Ver original
  1. $("#anonac").datepicker({dateFormat: 'yy-mm-dd', changeMonth: true, changeYear: true, yearRange: '-6:+0'});

Por probar... ;)

PD: No tienes q poner tantos document.ready... con uno es suficiente ;)
__________________
>> Eleazan's Source
>> @Eleazan
  #11 (permalink)  
Antiguo 07/07/2014, 11:04
 
Fecha de Ingreso: julio-2014
Mensajes: 116
Antigüedad: 9 años, 9 meses
Puntos: 1
Respuesta: Jquery datepicker no funciona en un formulario PHP

el js funciona bien verifica y mete los datos a la BD, menos las fechas por eso quiero ver el problema con el codigo validador ya que estaba hecho para 3 select por fecha en vez de un textbox, lo que hace el dateformat que me muestras es limitar el numero de años, quizás saque el 'yy-mm-dd' porque tengo el y-m-d en el
Código PHP:
Ver original
  1. GetSQLValueString(date("Y-m-d",($_POST['anonac'])), "date"),

Última edición por jmfmagnum; 07/07/2014 a las 11:12
  #12 (permalink)  
Antiguo 07/07/2014, 17:51
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Jquery datepicker no funciona en un formulario PHP

Y dónde está el resultado que te pedí de var_dump($_POST);
__________________
- León, Guanajuato
- GV-Foto
  #13 (permalink)  
Antiguo 07/07/2014, 20:06
 
Fecha de Ingreso: julio-2014
Mensajes: 116
Antigüedad: 9 años, 9 meses
Puntos: 1
Respuesta: Jquery datepicker no funciona en un formulario PHP

para ser honesto, no se donde ponerlo, es un codgio grande no se como probarlo, soy un inepto lo se
  #14 (permalink)  
Antiguo 08/07/2014, 14:05
 
Fecha de Ingreso: julio-2014
Mensajes: 116
Antigüedad: 9 años, 9 meses
Puntos: 1
Respuesta: Jquery datepicker no funciona en un formulario PHP

bueno, gracias por su ayuda, perorecibi ayuda de otra fuente y tuve mi respuesta

primero en los textbox, deje el "name" igual al ID

Código HTML:
Ver original
  1. <font size="2" face="Arial Narrow"><font color="#FF0000">Fecha
  2.               de nacimiento:</font> </span> <input type="text" name="anonac"  size="15" id="anonac"/>


y cambie el SQL a

Código PHP:
Ver original
  1. GetSQLValueString(date ( 'Y-m-d' , strtotime($_POST['anonac']) ), "text"),

perdón por las molestias que cause y gracias a todos quienes se dieron su tiempo

Etiquetas: datepicker, fecha, formulario, jquery, mysql, select, sql
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 16:21.