Foros del Web » Programando para Internet » Javascript »

Validar javascript con variables php de una consulta

Estas en el tema de Validar javascript con variables php de una consulta en el foro de Javascript en Foros del Web. Hola amigos: Tengo que validar 2 fechas con unas variables de php. Estos son los campos: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código HTML: Ver original < label for ...
  #1 (permalink)  
Antiguo 13/08/2012, 11:57
Avatar de kimmy  
Fecha de Ingreso: julio-2008
Mensajes: 841
Antigüedad: 15 años, 9 meses
Puntos: 15
Validar javascript con variables php de una consulta

Hola amigos:

Tengo que validar 2 fechas con unas variables de php. Estos son los campos:

Código HTML:
Ver original
  1. <label for="input-diez" class="float"><strong>Llegada:</strong></label>
  2. <label class="float"><input type="text" id="datepicker_1" name="llegada" class="fechador" ></label>
  3. <br />
  4. <label for="input-once" class="float"><strong>Salida:</strong></label>
  5. <label class="float"><input type="text" id="datepicker_2" name="salida" class="fechador" ></label>

y realice esta funcion javascript con las variables que vienen de la consulta:

Código Javascript:
Ver original
  1. function rango(){
  2.     var desde_plan= "<?php echo $desde_plan; ?>";
  3.     var hasta_plan= "<?php echo $hasta_plan; ?>";
  4.     var llegada = document.form1.llegada.value;
  5.     var salida = document.form1.salida.value;
  6.  
  7.     if(llegada >= desde_plan && salida <= hasta_plan) {
  8.         alert ('Fecha no está dentro del plan seleccionado. Escoger fechas entre el ' + desde_plan + ' hasta el ' + hasta_plan);
  9.     }
  10.    
  11. };

no se si es correcto esto porque cuando le coloco en el boton submit el onclick="rango();" no hace nada.

Cómo puedo hacer esto?
__________________
Caminando con el corazón partío
  #2 (permalink)  
Antiguo 13/08/2012, 12:09
 
Fecha de Ingreso: junio-2010
Mensajes: 153
Antigüedad: 13 años, 10 meses
Puntos: 4
Respuesta: Validar javascript con variables php de una consulta

La sintaxis que usas para asignar variables PHP a variables JS, esta bien!
Deberias estar seguro que las variables PHP tienen valor. Te recomiendo que hagas un alert de las variables JS. Saludos.
  #3 (permalink)  
Antiguo 13/08/2012, 12:20
Avatar de kimmy  
Fecha de Ingreso: julio-2008
Mensajes: 841
Antigüedad: 15 años, 9 meses
Puntos: 15
Respuesta: Validar javascript con variables php de una consulta

Gracias mark. Las verifiqué y si están pasando adecuadamente tanto las de php como las js. Creo que lo que está mal es la validación en el if....
__________________
Caminando con el corazón partío
  #4 (permalink)  
Antiguo 13/08/2012, 12:33
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años
Puntos: 461
Respuesta: Validar javascript con variables php de una consulta

el problema creo que esta en que estas comparando cadenas y no fechas y mientras estes haciendo esto no habrá una buena validación
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #5 (permalink)  
Antiguo 13/08/2012, 14:49
Avatar de utan  
Fecha de Ingreso: agosto-2012
Mensajes: 126
Antigüedad: 11 años, 8 meses
Puntos: 17
Respuesta: Validar javascript con variables php de una consulta

Código Javascript:
Ver original
  1. function rango(){
  2.             var desde_plan= "<?php echo $desde_plan; ?>";
  3.             var hasta_plan= "<?php echo $hasta_plan; ?>";
  4.             var llegada = document.form1.llegada.value;
  5.             var salida = document.form1.salida.value;
  6.            
  7.             if(llegada >= desde_plan && salida <= hasta_plan) {
  8.                 alert ('Fecha no está dentro del plan seleccionado. Escoger fechas entre el ' + desde_plan + ' hasta el ' + hasta_plan);
  9.             }
  10.            
  11.         };

A mi parecer si el condicional te da a falso no te dara ninguna alerta..
ahora si en las pruebas que le das tratas con fechas que te darian un verdadero como condicional..

Y aun asi no te da ninguna alerte , me fijaria si las variable son the la misma clase ya que las que as creado con php son strings y las otras pues no se sabe que clase seran , si son

integres es posible que no este Javascript probando correctamente..

Sin saber que contienen es muy dificil dar una respuesta apropiada..
__________________
Mis conocimientos son limitado, pero si te puedo ayudar lo are gustoso mi chat particular, visitalo gracias http://rendezvouschat.com
  #6 (permalink)  
Antiguo 13/08/2012, 17:36
Avatar de kimmy  
Fecha de Ingreso: julio-2008
Mensajes: 841
Antigüedad: 15 años, 9 meses
Puntos: 15
Respuesta: Validar javascript con variables php de una consulta

Es cierto, creo que esta mal porque se comparan cadenas y no fechas. Pero no se como las llevo a formato de fechas???
__________________
Caminando con el corazón partío
  #7 (permalink)  
Antiguo 13/08/2012, 18:28
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años
Puntos: 461
Respuesta: Validar javascript con variables php de una consulta

con el objeto Date

verifica el link ahí hay buenos ejemplos, saludos
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #8 (permalink)  
Antiguo 13/08/2012, 18:42
Avatar de kimmy  
Fecha de Ingreso: julio-2008
Mensajes: 841
Antigüedad: 15 años, 9 meses
Puntos: 15
Respuesta: Validar javascript con variables php de una consulta

Gracias. Yo traté de ponerlo asi en la variable php:

Código Javascript:
Ver original
  1. var desde_plan= "<?php echo $desde_plan; ?>";
  2.     var desde_plan = new Date(Date.parse(desde_plan));
  3.     var hasta_plan= "<?php echo $hasta_plan; ?>";
  4.     var hasta_plan = new Date(Date.parse(hasta_plan));

pero me da "Thu Jul 26 2012 19:30:00 GMT-0430".

Ahorita mis variables php me traen las fechas asi:

2012-08-10 y 2012-09-10 (por ejemplo)

y las javascript son asi:

2012-08-15 y 2012-08-20

No debería funcionar???

Por favor explicame porque no entiendo nada de javascript con esto de las fechas.

Gracias.
__________________
Caminando con el corazón partío
  #9 (permalink)  
Antiguo 02/09/2012, 18:46
Avatar de kimmy  
Fecha de Ingreso: julio-2008
Mensajes: 841
Antigüedad: 15 años, 9 meses
Puntos: 15
Respuesta: Validar javascript con variables php de una consulta

Tengo 15 dias tratando de resolver esto y de verdad no entiendo.

Por favor si ustedes que tienen tanto conocimiento me lo pueden explicar se los agradezco.

Yo lo que quiero es que dos fechas que selecciono en 2 select se comparen con las dos fechas que tengo en mysql y si no están dentro de ese rango, poder dar un mensaje de que las fechas no están en el rango.

Traté de usar la función que mostré en el post anterior pero no me funciona....
__________________
Caminando con el corazón partío
  #10 (permalink)  
Antiguo 02/09/2012, 22:08
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: Validar javascript con variables php de una consulta

Cita:
Iniciado por kimmy
Ahorita mis variables php me traen las fechas asi:

2012-08-10 y 2012-09-10 (por ejemplo)

y las javascript son asi:

2012-08-15 y 2012-08-20

No debería funcionar???
Si las fechas de PHP y Javascript las tienes ya en el mismo formato (yyyy-mm-dd) entonces sólo necesitas convertirlas a timestamp para comparar:

Código PHP:
Ver original
  1. // Fechas en php:
  2. $php_ini = strtotime('2012-08-10');
  3. $php_fin = strtotime('2012-08-20');
  4.  
  5. // Fechas javascript
  6. $js_ini = strtotime('2012-08-15');
  7. $js_fin = strtotime('2012-08-20');
  8.  
  9. if($js_ini < $php_ini) {
  10.     // La fecha seleccionada está fuera de rango, antes del inicio válido
  11. }
  12. if($js_fin > $php_fin) {
  13.     // La fecha seleccionada está fuera de rango, después del fin válido
  14. }

Si quieres puedes comparar por separado, o usando || y simplemente enviando un mensaje de error 'La fecha debe estar entre (fecha inicio) y (fecha fin)'
__________________
- León, Guanajuato
- GV-Foto
  #11 (permalink)  
Antiguo 02/09/2012, 22:16
Avatar de kimmy  
Fecha de Ingreso: julio-2008
Mensajes: 841
Antigüedad: 15 años, 9 meses
Puntos: 15
Respuesta: Validar javascript con variables php de una consulta

pero no entiendo, esto va en la funcion javascript??? Lo puse asi pero no funciona:

Código PHP:
Ver original
  1. $php_ini = strtotime($desde_plan);
  2. $php_fin = strtotime($hasta_plan);

Código Javascript:
Ver original
  1. function rango(){
  2.         var desde_plan= "<?php echo $php_ini; ?>";
  3.         var hasta_plan= "<?php echo $php_fin; ?>";
  4.        
  5.        
  6.         var llegada = document.form1.llegada.value;
  7.         var salida = document.form1.salida.value;
  8.        
  9.         js_ini = strtotime(llegada);
  10.         js_fin = strtotime(salida);
  11.        
  12.         if(js_ini < desde_plan) {
  13.        alert('La fecha seleccionada está fuera de rango, antes del inicio válido');
  14.         }
  15.         if(js_fin > hasta_plan) {
  16.         alert('La fecha seleccionada está fuera de rango, después del fin válido');
  17.         }
  18.     };
__________________
Caminando con el corazón partío
  #12 (permalink)  
Antiguo 02/09/2012, 22:31
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: Validar javascript con variables php de una consulta

Para obtener la fecha como timestamp en Javascript sólo necesitas:

Código Javascript:
Ver original
  1. js_ini = new Date(llegada).gettime();
  2. js_fin = new Date(salida).gettime();
  3.  
  4. // Debes comparar cada fecha js con los límites válidos
  5. if(js_ini < php_ini || js_ini > php_fin) {
  6.     // Fuera de rango, ya sea antes del inicio o después del final
  7. }
__________________
- León, Guanajuato
- GV-Foto
  #13 (permalink)  
Antiguo 02/09/2012, 22:49
Avatar de kimmy  
Fecha de Ingreso: julio-2008
Mensajes: 841
Antigüedad: 15 años, 9 meses
Puntos: 15
Respuesta: Validar javascript con variables php de una consulta

Gracias triby pero parece que no me funciona la conversion de las fechas en javascript porque al hacer un alert(js_ini) no me muestra nada y si lo hago sin la conversion si me muestra la fecha asi por ejemplo: 2012-08-10.

????
__________________
Caminando con el corazón partío
  #14 (permalink)  
Antiguo 02/09/2012, 23:10
Avatar de kimmy  
Fecha de Ingreso: julio-2008
Mensajes: 841
Antigüedad: 15 años, 9 meses
Puntos: 15
Respuesta: Validar javascript con variables php de una consulta

Ya lo arreglé, era que estaba colocando mal el gettime y era getTime.

Ahora estoy tratando de que me funcionen los if.

Gracias ;)
__________________
Caminando con el corazón partío
  #15 (permalink)  
Antiguo 03/09/2012, 10:04
Avatar de kimmy  
Fecha de Ingreso: julio-2008
Mensajes: 841
Antigüedad: 15 años, 9 meses
Puntos: 15
Respuesta: Validar javascript con variables php de una consulta

No entiendo porque no me valida la funcion. Quedó asi:

Código Javascript:
Ver original
  1. function rango(){
  2.     var desde = "<?php echo $desde_plan; ?>";
  3.     var hasta = "<?php echo $hasta_plan; ?>";
  4.        
  5.         var desde_plan= "<?php echo $php_ini; ?>";
  6.         var hasta_plan= "<?php echo $php_fin; ?>";
  7.        
  8.         var llegada = document.form1.llegada.value;
  9.         var salida = document.form1.salida.value;
  10.        
  11.     js_ini = new Date(llegada).getTime();
  12.     js_fin = new Date(salida).getTime();
  13.        
  14.        
  15.     if((js_ini < desde_plan) || (js_fin > hasta_plan)) {
  16.             alert('Fecha seleccionada fuera de rango, seleccionar fechas entre '+ desde +' hasta ' + hasta);
  17.         document.form1.llegada.focus();
  18.         return false;
  19.         }
  20. };

En las variables arroja esto:

desde 1345161600
js_ini 1346716800000
hasta 1347753600
js_fin 1346716800000

Será por esto???

Estoy desde la madrugada con esto pero no se porque no funciona

????
__________________
Caminando con el corazón partío
  #16 (permalink)  
Antiguo 03/09/2012, 10:10
Avatar de Dradi7  
Fecha de Ingreso: junio-2008
Ubicación: Peru - Lima
Mensajes: 1.518
Antigüedad: 15 años, 10 meses
Puntos: 220
Respuesta: Validar javascript con variables php de una consulta

En esta parte de tu codigo en vez de esto

if((js_ini < desde_plan) || (js_fin > hasta_plan))

no seria esto

if((js_ini < desde_plan) && (js_fin > hasta_plan))
__________________
La clave de todo triunfador es eliminar todas sus excusas y sus limitaciones
  #17 (permalink)  
Antiguo 03/09/2012, 10:12
Avatar de kimmy  
Fecha de Ingreso: julio-2008
Mensajes: 841
Antigüedad: 15 años, 9 meses
Puntos: 15
Respuesta: Validar javascript con variables php de una consulta

Cuando la coloco asi, no pasa nada es decir, asi coloque fechas fuera del rango permitido no las valida.

Yo pienso pueden ser las variables

Tu que crees???
__________________
Caminando con el corazón partío
  #18 (permalink)  
Antiguo 03/09/2012, 10:21
Avatar de Dradi7  
Fecha de Ingreso: junio-2008
Ubicación: Peru - Lima
Mensajes: 1.518
Antigüedad: 15 años, 10 meses
Puntos: 220
Respuesta: Validar javascript con variables php de una consulta

Una consulta en tu codigo veo esto

desde
hasta

desde_plan
hasta_plan

js_ini
js_fin

en el ejemplo que tu pusiste

desde 1345161600
js_ini 1346716800000
hasta 1347753600
js_fin 1346716800000


no seria mejor que valides asi

if((js_ini < desde) || (js_fin > hasta))
__________________
La clave de todo triunfador es eliminar todas sus excusas y sus limitaciones
  #19 (permalink)  
Antiguo 03/09/2012, 10:32
Avatar de kimmy  
Fecha de Ingreso: julio-2008
Mensajes: 841
Antigüedad: 15 años, 9 meses
Puntos: 15
Respuesta: Validar javascript con variables php de una consulta

realmente el resultado es:

desde_plan 1345161600
js_ini 1346716800000
hasta_plan 1347753600
js_fin 1346716800000

el desde y hasta guarda las variables en formato 2012-08-09 (por ejemplo) y solo lo uso para mostrar el mensaje
__________________
Caminando con el corazón partío
  #20 (permalink)  
Antiguo 03/09/2012, 10:44
Avatar de Dradi7  
Fecha de Ingreso: junio-2008
Ubicación: Peru - Lima
Mensajes: 1.518
Antigüedad: 15 años, 10 meses
Puntos: 220
Respuesta: Validar javascript con variables php de una consulta

Creo que tu error esta al comparar un String con un Number trata de poner esto en estas variables

var desde_plan= parseFloat("<?php echo $php_ini; ?>");
var hasta_plan= parseFloat("<?php echo $php_fin; ?>");
__________________
La clave de todo triunfador es eliminar todas sus excusas y sus limitaciones
  #21 (permalink)  
Antiguo 03/09/2012, 11:40
Avatar de kimmy  
Fecha de Ingreso: julio-2008
Mensajes: 841
Antigüedad: 15 años, 9 meses
Puntos: 15
Respuesta: Validar javascript con variables php de una consulta

lo coloqué como me indicas pero no funciona. Voy a montarlo en internet para ver que arroja el codigo:

http://vamonosdevacaciones.com.ve/co...otizar=Cotizar
__________________
Caminando con el corazón partío
  #22 (permalink)  
Antiguo 03/09/2012, 12:51
Avatar de Dradi7  
Fecha de Ingreso: junio-2008
Ubicación: Peru - Lima
Mensajes: 1.518
Antigüedad: 15 años, 10 meses
Puntos: 220
Respuesta: Validar javascript con variables php de una consulta

Primero un error esta que tanto en PHP como en Javascript cuando pongas las mismas fechas en ambos los resultados son diferentes ejm:

Código PHP:
Ver original
  1. echo strtotime("2012-09-03");
  2. //esto devolvera 1346648400

en Javascritp al hacer esto
Código Javascript:
Ver original
  1. var fecha = new Date("2012-09-03").getTime();
  2. //esto te devolvera 1346630400000

para que en PHP te devuelva la manera correcta debes hacer lo siguiente

Código PHP:
Ver original
  1. echo strtotime(date('Y-m-d'))*1000;

Asi te estara devolviendo la fecha correcta y podras comparar de una manera correcta las fechas que te devuelve el PHP y el JavaScript.

En cuanto a tu validación

if(js_ini < desde_plan || js_fin > hasta_plan)

trata de hacerlo de la siguiente forma
__________________
La clave de todo triunfador es eliminar todas sus excusas y sus limitaciones
  #23 (permalink)  
Antiguo 03/09/2012, 14:48
Avatar de kimmy  
Fecha de Ingreso: julio-2008
Mensajes: 841
Antigüedad: 15 años, 9 meses
Puntos: 15
Respuesta: Validar javascript con variables php de una consulta

Lo que me indicaste de php me arroja esto: 1.3466304E+12 osea que para nada se puede comparar con las variables de javascript.

Ya no se que mas poner......
__________________
Caminando con el corazón partío
  #24 (permalink)  
Antiguo 03/09/2012, 14:56
Avatar de Dradi7  
Fecha de Ingreso: junio-2008
Ubicación: Peru - Lima
Mensajes: 1.518
Antigüedad: 15 años, 10 meses
Puntos: 220
Respuesta: Validar javascript con variables php de una consulta

estas segura a mi me vota este resultado cuando pruebo con esto strtotime("2012-09-03")*1000

1346630400000 lo mismo que cuando hago new Date("2012-09-03").getTime()

eso debe ser el error con esto ya no te estaria saliendo el alert aunque pongas la fecha correcta o incorrecta
__________________
La clave de todo triunfador es eliminar todas sus excusas y sus limitaciones
  #25 (permalink)  
Antiguo 03/09/2012, 15:18
Avatar de kimmy  
Fecha de Ingreso: julio-2008
Mensajes: 841
Antigüedad: 15 años, 9 meses
Puntos: 15
Respuesta: Validar javascript con variables php de una consulta

Me sigue dando asi 1.3477536E+12. Sera porque mis datos en mysql son tipo date?
__________________
Caminando con el corazón partío
  #26 (permalink)  
Antiguo 03/09/2012, 15:21
Avatar de Dradi7  
Fecha de Ingreso: junio-2008
Ubicación: Peru - Lima
Mensajes: 1.518
Antigüedad: 15 años, 10 meses
Puntos: 220
Respuesta: Validar javascript con variables php de una consulta

Bueno entonces hazlo al revés

Código PHP:
Ver original
  1. echo strtotime(date('Y-m-d'))*1000;
  2. //cambialo por como estaba antes
  3. echo strtotime(date('Y-m-d'));

y en tu JS

Código Javascript:
Ver original
  1. new Date(llegada).getTime()/1000
  2. new Date(salida).getTime()/1000
__________________
La clave de todo triunfador es eliminar todas sus excusas y sus limitaciones
  #27 (permalink)  
Antiguo 03/09/2012, 18:42
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: Validar javascript con variables php de una consulta

Código PHP:
Ver original
  1. var desde_plan= <?php echo $php_ini; ?>; // Quita las comillas para que sea un entero
  2.         var hasta_plan= <?php echo $php_fin; ?>; // Igual aquí
  3.  
  4.         var llegada = document.form1.llegada.value;
  5.         var salida = document.form1.salida.value;
  6.  
  7.        // Yo preferiría buscar por id, por compatibilidad entre navegadores
  8.        var llegada = document.getElementById('datepicker_1').value;
  9.        // Y ya que estás usando jquery, puedes hacerlo así:
  10.        var salida = $('#datepicker_2').value;
  11.        
  12.     js_ini = new Date(llegada).getTime() / 1000;
  13.     js_fin = new Date(salida).getTime() / 1000;
  14.  
  15.     // Compruebas si los números a comparar están correctos
  16.     alert(desde_plan + ' - ' + hasta_plan + '\n' + js_ini + ' - ' + js_fin);
__________________
- León, Guanajuato
- GV-Foto
  #28 (permalink)  
Antiguo 04/09/2012, 19:30
Avatar de kimmy  
Fecha de Ingreso: julio-2008
Mensajes: 841
Antigüedad: 15 años, 9 meses
Puntos: 15
Respuesta: Validar javascript con variables php de una consulta

Muchas gracias Triby, ahora si funciona....

__________________
Caminando con el corazón partío

Etiquetas: php, variables
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 14:36.