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

Duda acerca de Validacion y modo de consulta AJAX y PHP

Estas en el tema de Duda acerca de Validacion y modo de consulta AJAX y PHP en el foro de Frameworks JS en Foros del Web. Hola, Mi problema es el siguiente, estoy haciendo un filtrado a través de 2 Inputs del type text con el cual al indicar un parametro ...
  #1 (permalink)  
Antiguo 14/02/2011, 03:20
 
Fecha de Ingreso: junio-2009
Mensajes: 75
Antigüedad: 15 años, 5 meses
Puntos: 0
Pregunta Duda acerca de Validacion y modo de consulta AJAX y PHP

Hola,

Mi problema es el siguiente, estoy haciendo un filtrado a través de 2 Inputs del type text con el cual al indicar un parametro y dar enter lo envia a través de AJAX, crea una consulta con el parametro enviado y genera una tabla en HTML.

Al escribir otro parametro en el segundo Input, debera complementar la informacion ya recibida y filtrar para que solo quede la información especificada con los parametros del primer y segundo input, creando asi menos resultados por asi decirlo, pero la cosa esta en que al introducir el segundo parametro y dar enter para generar la tabla pierdo los datos de la tabla anterior y me genera una tabla nueva.

Estoy tratando de validar los campos para que si en caso de que se envien vacios alguno de los 2 inputs realize la consulta solo con la informacon del input que se haya rellenado pero no eh tenido exito, ¿podria alguien darme una mano porfavor?.

El codigo PHP que manejo para generar la tabla y realizar la consulta es la siguiente:

Código PHP:
Ver original
  1. <?PHP
  2.       $conexion = mysql_connect("localhost", "root", "root") or die ("No se puede conectar con el servidor");
  3.       $db="bitacora_digeset"; // el nombre de la base de datos
  4.       mysql_select_db($db, $conexion) or die('No pudo seleccionarse la BD.'); // conectamos con la base de datos
  5.    
  6.     /*Captura de variables*/
  7.        $Espec = $_REQUEST['Espec'];
  8.        $Depen = $_REQUEST['Depen'];
  9.        
  10.     if ((strlen($Espec)>0) && (strlen($Depen)==0)){
  11.        $query="SELECT Sfolio, dependencia, especialista
  12.                 FROM bitacora_de_consultas
  13.                 WHERE (especialista LIKE '$Espec')";
  14.  
  15.            $resultado=mysql_query($query,$conexion);
  16.     }
  17.     if ((strlen($Espec)==0) && (strlen($Depen)>0)){
  18.        $query="SELECT Sfolio, dependencia, especialista
  19.                 FROM bitacora_de_consultas
  20.                 WHERE (dependencia LIKE '$Depen')";
  21.  
  22.            $resultado=mysql_query($query,$conexion);
  23.     }
  24.     if ((strlen($Espec)>0) && (strlen($Depen)>0)){
  25.        $query="SELECT Sfolio, dependencia, especialista
  26.                 FROM bitacora_de_consultas
  27.                 WHERE (especialista LIKE '$Espec' AND dependencia LIKE '$Depen')";
  28.  
  29.            $resultado=mysql_query($query,$conexion);
  30.     }
  31.           //Generola tabla
  32.           echo"<br/>";
  33.           echo"<br/>";
  34.             echo"<table border='1'>";  
  35.                     echo"<tr class='TablaTraslados1'>";
  36.                    
  37.                         echo"<td>";
  38.                             echo"<label class='LetrasBlancas'>".'Num. de Folio'."</label>";
  39.                         echo"</td>";
  40.                        
  41.                         echo"<td>";
  42.                             echo"<label class='LetrasBlancas'>".'Dependencia'."</label>";
  43.                         echo"</td>";
  44.                                            
  45.                         echo"<td>";
  46.                             echo"<label class='LetrasBlancas'>".'Especialista'."</label>";
  47.                         echo"</td>";
  48.  
  49.                     echo"</tr>";
  50.                 while ($row = mysql_fetch_array($resultado, MYSQL_ASSOC)) {
  51.                     echo"<tr class='TablaTraslados2'>";
  52.                         echo"<td>";
  53.                             echo"<label class='LetrasNegras'>".$row['Sfolio']."</label>";
  54.                         echo"</td>";
  55.                    
  56.                         echo"<td>";
  57.                             echo"<label class='LetrasNegras'>".$row['dependencia']."</label>";
  58.                         echo"</td>";
  59.                        
  60.                         echo"<td>";
  61.                             echo"<label class='LetrasNegras'>".$row['especialista']."</label>";
  62.                         echo"</td>";
  63.                        
  64.                     echo"</tr>";
  65.                 }
  66.             echo"</table>";
  67. ?>


Como comentario:
Bueno eh notado que los ultimos posts que eh creado o han sido eliminados o movidos ya que no los encuentro ni en mi historial de mensajes creados o seguidos, no se por que pase esto, no creo que sea por mi manera de hacer los posts o si creen que estoy aqui para que me hagan todo sin hacer nada yo, ya que una vez me tope con alguien que me insunuaba eso, cosa que me desagrado mucho.

Generalmente comento mi problema muestro los scripts y despues donde me trabo, no se si algun moderador este en desacuerdo con esa tematica pero como sea, es solo un comentario...
  #2 (permalink)  
Antiguo 14/02/2011, 03:36
Avatar de richicasas  
Fecha de Ingreso: abril-2007
Ubicación: Colombia
Mensajes: 692
Antigüedad: 17 años, 7 meses
Puntos: 13
Busqueda Respuesta: Duda acerca de Validacion y modo de consulta AJAX y PHP

Cuando generes el primer HTML despues de ingresar el primer parametro, puedes colocar en forma oculta el input con el dato de la primer tabla y cuando se escriba en el segundo input y se envie , se enviaran ambos datos. Creo que asi entiendo tu duda, o explicate mejor y muestra el codigo completo ya que estoy ciego o el input de filtrado no lo veo.
__________________
Juguetes Sexuales
  #3 (permalink)  
Antiguo 14/02/2011, 03:49
 
Fecha de Ingreso: junio-2009
Mensajes: 75
Antigüedad: 15 años, 5 meses
Puntos: 0
Respuesta: Duda acerca de Validacion y modo de consulta AJAX y PHP

Hola,

Originalmente estoy utilizando 3 archvos, la pagina de los inputs, el .js del AJAX y la funcion de enter y ese que mostre que regresa el .JS, no lo puse todo para que no se viera tanto codigo.

La parte de codigo de la pagina de los inputs es el siguiente:

Código HTML:
Ver original
  1. <div class="SSform1">  
  2.         <br/>
  3.             <p class="cgp1">Dependencia
  4.                 <input type="text" size="80" id="Depen" name="Depen" onkeypress="detectkey_depen(event,this)"/>
  5.             </p>
  6.             <p class="cgp2">Especialista:
  7.                 <input type="text" size="80" name="Espec" id="Espec" onkeypress="detectkey_espec(event,this)"/>
  8.             </p>
  9.     </div>

Los codigos para cada input serian:

Código Javascript:
Ver original
  1. function detectkey_depen(evt,obj) {
  2.       keycode = (evt.keyCode==0) ? evt.which : evt.keyCode;
  3.      if (keycode==13){
  4.           /*Mi modificacion*/
  5.           if (document.getElementById('Depen').value.length == 0){
  6.           alert("Debe completar el formulario");
  7.           document.getElementById('Depen').focus();
  8.           return 0;}
  9.           /*Mi modificacion*/
  10.           Depen=obj.value + String.fromCharCode(keycode);
  11.           pagina='externos/consultassG_dependencia.php?Depen='+Depen;
  12.           }
  13.           divcontenido = document.getElementById('SSform2');
  14.           ajax=objetoAjax();
  15.           ajax.open("POST", pagina, true);
  16.           ajax.onreadystatechange=function() {
  17.             if (ajax.readyState==4) {
  18.               divcontenido.innerHTML = ajax.responseText
  19.             }
  20.           }
  21.           ajax.send(null);
  22.       }
  23.      
  24.     function detectkey_espec(evt,obj) {
  25.       keycode = (evt.keyCode==0) ? evt.which : evt.keyCode;
  26.      if (keycode==13){
  27.           /*Mi modificacion*/
  28.           if (document.getElementById('Espec').value.length == 0){
  29.           alert("Debe completar el formulario");
  30.           document.getElementById('Espec').focus();
  31.           return 0;}
  32.           /*Mi modificacion*/
  33.           Espec=obj.value + String.fromCharCode(keycode);
  34.           pagina='externos/consultassG_dependencia.php?Espec='+Espec;
  35.           }
  36.           divcontenido = document.getElementById('SSform2');
  37.           ajax=objetoAjax();
  38.           ajax.open("POST", pagina, true);
  39.           ajax.onreadystatechange=function() {
  40.             if (ajax.readyState==4) {
  41.               divcontenido.innerHTML = ajax.responseText
  42.             }
  43.           }
  44.           ajax.send(null);
  45.       }

Tambien eh intentado una sola funcion para ambos inputs y envio ambos campos pero si lo pongo asi la consulta no me regresa nada.
  #4 (permalink)  
Antiguo 14/02/2011, 03:53
Avatar de richicasas  
Fecha de Ingreso: abril-2007
Ubicación: Colombia
Mensajes: 692
Antigüedad: 17 años, 7 meses
Puntos: 13
Busqueda Respuesta: Duda acerca de Validacion y modo de consulta AJAX y PHP

1. Pensaria que deben llamar la misma funcion y dentro de la funcion validar si ambos campos o solo uno contiene texto y hacer el filtrado.

2. Cuando se regresen los datos, crear o asignar a los input ( que anteriormente se rellenaron ) el dato que se relleno y mantenerlo oculto, no se percibira por el usuario, pero cuando se envie, sera percibida por el ajax como si lo hubiera ingresado el usuario.

Saludos.
__________________
Juguetes Sexuales
  #5 (permalink)  
Antiguo 14/02/2011, 03:57
 
Fecha de Ingreso: junio-2009
Mensajes: 75
Antigüedad: 15 años, 5 meses
Puntos: 0
Respuesta: Duda acerca de Validacion y modo de consulta AJAX y PHP

Graficamente hablando puedes ver mi problema desde este enlace

Por ahora en Dependencia puedes poner "Direccion general de servicios telematicos" o solo "dige" para efectos del autocomplete, en Especialista puedes poner "mata" para que te salga la opcion del autocomplete.
  #6 (permalink)  
Antiguo 14/02/2011, 05:01
Avatar de richicasas  
Fecha de Ingreso: abril-2007
Ubicación: Colombia
Mensajes: 692
Antigüedad: 17 años, 7 meses
Puntos: 13
Busqueda Respuesta: Duda acerca de Validacion y modo de consulta AJAX y PHP

Mira, para empezar el enlace se queda cargando y no carga.
Revisando tu codigo Ajax, veo que tanto en la primera como segunda mandas parametros diferentes, debes mandarlos los dos o sino no estarias haciendo nada.

Asi como esta el codigo, estas enviando siempre un solo parametro, y siempre en la validacion encontraras uno de los dos, mas no ambos juntos. Prueba colocar en el ajax en la linea que corresponde esto:
Código Javascript:
Ver original
  1. pagina='externos/consultassG_dependencia.php?Depen='+Depen&Espec='+Espec;

Obviamente debes hacer el proceso para recibir ambas variables.
__________________
Juguetes Sexuales
  #7 (permalink)  
Antiguo 14/02/2011, 10:39
 
Fecha de Ingreso: junio-2009
Mensajes: 75
Antigüedad: 15 años, 5 meses
Puntos: 0
Pregunta Respuesta: Duda acerca de Validacion y modo de consulta AJAX y PHP

Cita:
Iniciado por richicasas Ver Mensaje
Mira, para empezar el enlace se queda cargando y no carga.
Hola,

Si lo se, lo que pasa es que ya eran las 5 de la mañana aca en Mexico y me ardian bastante los ojos agregando que tenia que madrugar, asi que tube que apagar mi computadora.

Intentare como me lo indicas para ver que resulta y te digo, gracías por tu respuesta, paciencia y tiempo.
  #8 (permalink)  
Antiguo 16/02/2011, 11:20
 
Fecha de Ingreso: junio-2009
Mensajes: 75
Antigüedad: 15 años, 5 meses
Puntos: 0
Respuesta: Duda acerca de Validacion y modo de consulta AJAX y PHP

Hola,

Eh dedicido generar la consulta solo en el primer input, guardarlo en un arreglo y mostrar el resultado y para asi solo tener que trabajar el arreglo almacenado el siguiente input sin generar otra consulta.

Ahora tengo mis dudas respecto al envio de la informacion a travez del segundo input y como regresaria la nueva informacion, con ayuda de un compañero logramos hacer que la cosulta por fin filtrara la informacion desde el primer input dejando el parametro de filtrado con un valor estatico, asi que ahora solo sera cuestion de acomodarlo para que filtre en el segundo input y el parametro cambie cada vez que se manda desde el segundo input, hemos estado intentadolo pero parece ser que perdemos la informacion al mandarla del segundo input y toda la tabla generada se borra.

podrian darnos una mano respecto a como acomodarlo al segundo input y como mandar la informacion, os lo agradeceria bastante en realidad, el codigo es el siguiente:

Código PHP:
Ver original
  1. <?PHP
  2.       $conexion = mysql_connect("localhost", "root", "root") or die ("No se puede conectar con el servidor");
  3.       $db="bitacora_digeset"; // el nombre de la base de datos
  4.       mysql_select_db($db, $conexion) or die('No pudo seleccionarse la BD.'); // conectamos con la base de datos
  5.    
  6.     /*Captura de variables*/
  7.        $Depen = $_REQUEST['Depen'];
  8.        $Espec = $_REQUEST['Espec'];
  9.        /*$Espec = "ABRAHAM ANAYA GARCIA";*/
  10.        
  11.    
  12.         $query="SELECT Sfolio, dependencia, especialista
  13.                 FROM bitacora_de_consultas
  14.                 WHERE (dependencia LIKE '$Depen')";
  15.        
  16.        
  17.         $resultado=mysql_query($query,$conexion);
  18.        
  19.     if ((strlen($Espec)==0) && (strlen($Depen)>0)){
  20.           //Generola tabla
  21.         $c=0;
  22.  
  23.             if ($resultado>0){
  24.                 while ($row = mysql_fetch_array($resultado)) {
  25.                     /*echo  $row['Sfolio'];
  26.                     echo    $row['dependencia'];
  27.                     echo    $row['especialista'];*/
  28.                     $as=array();
  29.                     echo $as[$c]=$c.".- ".$row['Sfolio'].$row['dependencia'].$row['especialista']."<br/>";
  30.                    
  31.                     $pos=strpos($as[$c],$Espec);
  32.                     if ($pos !== false){
  33.                     echo "<font color=red>".$as[$c]=$c.$row['Sfolio'].$row['dependencia'].$row['especialista']."<br/>"."</font>";
  34.                                         };
  35.                     $c=$c+1;
  36.                 }
  37.             }  
  38.     }
  39.     if ((strlen($Espec)>0) && (strlen($Depen)==0)){
  40.             if ($resultado>0){
  41.                 while ($row = mysql_fetch_array($resultado)) {
  42.                     $pos=strpos($as[$c],$Espec);
  43.                     if ($pos !== false){
  44.                     echo "<font color=red>".$as[$c]=$c.$row['Sfolio'].$row['dependencia'].$row['especialista']."<br/>"."</font>";
  45.                                         };
  46.                     $c=$c+1;
  47.                 }
  48.             }
  49.     }      
  50.     ?>

Dado que solo realizare consulta en un solo input, decidi enviar la informacion del segundo input enotra funcion separada de la primera, parace ser que si envia pero no entra en el filtrado y no me regresa nada, los codigos son los siguientes:

Código Javascript:
Ver original
  1. /****************Realizacion de consulta por medio de AJAX al presional ENTER Keycode == 13********************/
  2. function detectkey_depen(evt,obj) {
  3.       keycode = (evt.keyCode==0) ? evt.which : evt.keyCode;
  4.     if (keycode==13){
  5.           if (document.getElementById('Depen').value.length == 0){
  6.           alert("Debe completar el formulario");
  7.           document.getElementById('Depen').focus();
  8.           return 0;}
  9.           var Depen=obj.value + String.fromCharCode(keycode);
  10.           var pagina='externos/consultassG_dependencia.php?Depen='+Depen;
  11.        
  12.           divcontenido = document.getElementById('SSform2');
  13.           ajax=objetoAjax();
  14.           ajax.open("POST", pagina, true);
  15.           ajax.onreadystatechange=function() {
  16.             if (ajax.readyState==4) {
  17.               divcontenido.innerHTML = ajax.responseText
  18.             }
  19.           }
  20.           ajax.send(null);
  21.     }    
  22. }
  23. function detectkey_espec(evt,obj) {
  24.       keycode = (evt.keyCode==0) ? evt.which : evt.keyCode;
  25.     if (keycode==13){
  26.           if (document.getElementById('Espec').value.length == 0){
  27.           alert("Debe completar el formulario");
  28.           document.getElementById('Espec').focus();
  29.           return 0;}
  30.          var Espec=obj.value + String.fromCharCode(keycode);
  31.          var pagina='externos/consultassG_dependencia.php?Espec='+Espec;
  32.          
  33.           divcontenido = document.getElementById('SSform2');
  34.           ajax=objetoAjax();
  35.           ajax.open("POST", pagina, true);
  36.           ajax.onreadystatechange=function() {
  37.             if (ajax.readyState==4) {
  38.               divcontenido.innerHTML = ajax.responseText
  39.             }
  40.           }
  41.           ajax.send(null);
  42.     }  
  43. }
  #9 (permalink)  
Antiguo 16/02/2011, 11:25
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 5 meses
Puntos: 2135
Tema movido desde PHP a AJAX
  #10 (permalink)  
Antiguo 16/02/2011, 12:15
 
Fecha de Ingreso: junio-2009
Mensajes: 75
Antigüedad: 15 años, 5 meses
Puntos: 0
Respuesta: Duda acerca de Validacion y modo de consulta AJAX y PHP

Estoy intentando poner la misma funcion en ambos inputs y validar segun lo que se envie,pero aun asi no me jala, de hecho me da un error larguisimo y raro :S

Código Javascript:
Ver original
  1. function detectkey_depen(evt,obj) {
  2.       keycode = (evt.keyCode==0) ? evt.which : evt.keyCode;
  3.     if (keycode==13){
  4.         if ((document.getElementById('Depen').value.length > 0) && (document.getElementById('Espec').value.length == 0)){
  5.           var Depen=obj.value + String.fromCharCode(keycode);
  6.           var pagina='externos/consultassG_dependencia.php?Depen='+Depen;
  7.         }
  8.        
  9.         if ((document.getElementById('Espec').value.length > 0) && (document.getElementById('Depen').value.length == 0)){
  10.           var Espec=obj.value + String.fromCharCode(keycode);
  11.           var pagina='externos/consultassG_dependencia.php?Espec='+Espec;
  12.         }
  13.        
  14.         if ((document.getElementById('Espec').value.length > 0) && (document.getElementById('Depen').value.length > 0)){
  15.           var Espec=obj.value + String.fromCharCode(keycode);
  16.           var pagina='externos/consultassG_dependencia.php?Espec='+Espec;
  17.           var Depen=obj.value + String.fromCharCode(keycode);
  18.           var pagina='externos/consultassG_dependencia.php?Depen='+Depen;        
  19.         }
  20.           divcontenido = document.getElementById('SSform2');
  21.           ajax=objetoAjax();
  22.           ajax.open("POST", pagina, true);
  23.           ajax.onreadystatechange=function() {
  24.             if (ajax.readyState==4) {
  25.               divcontenido.innerHTML = ajax.responseText
  26.             }
  27.           }
  28.           ajax.send(null);
  29.     }
  30. }

Código PHP:
Ver original
  1. <?PHP
  2.       $conexion = mysql_connect("localhost", "root", "root") or die ("No se puede conectar con el servidor");
  3.       $db="bitacora_digeset"; // el nombre de la base de datos
  4.       mysql_select_db($db, $conexion) or die('No pudo seleccionarse la BD.'); // conectamos con la base de datos
  5.    
  6.     /*Captura de variables*/
  7.        $Depen = $_REQUEST['Depen'];
  8.        $Espec = $_REQUEST['Espec'];
  9.        $c=0;
  10.        $as=array();
  11.        /*$Espec = "ABRAHAM ANAYA GARCIA";*/
  12.        
  13.    
  14.         $query="SELECT Sfolio, dependencia, especialista
  15.                 FROM bitacora_de_consultas
  16.                 WHERE (dependencia LIKE '$Depen')";
  17.        
  18.        
  19.         $resultado=mysql_query($query,$conexion);
  20.        
  21.     if ((strlen($Depen)>0)){
  22.           //Generola tabla
  23.             if ($resultado>0){
  24.                 while ($row = mysql_fetch_array($resultado)) {
  25.                     /*echo  $row['Sfolio'];
  26.                     echo    $row['dependencia'];
  27.                     echo    $row['especialista'];*/
  28.  
  29.                     echo $as[$c]=$c.".- ".$row['Sfolio'].$row['dependencia'].$row['especialista']."<br/>";
  30.                     $c=$c+1;
  31.                 }
  32.             }  
  33.     }
  34.     if ((strlen($Espec)>0)){
  35.             if ($resultado>0){
  36.                 while ($row = mysql_fetch_array($resultado)) {
  37.                     $pos=strpos($as[$c],$Espec);
  38.                     if ($pos !== false){
  39.                     echo "<font color=red>".$as[$c]=$c.$row['Sfolio'].$row['dependencia'].$row['especialista']."<br/>"."</font>";
  40.                                         };
  41.                     $c=$c+1;
  42.                 }
  43.             }
  44.     }
  #11 (permalink)  
Antiguo 18/02/2011, 10:47
 
Fecha de Ingreso: junio-2009
Mensajes: 75
Antigüedad: 15 años, 5 meses
Puntos: 0
Respuesta: Duda acerca de Validacion y modo de consulta AJAX y PHP

Hola que tal, el problema se soluciono, como me indicaste madne ambos parametros a la vez y con elphp validaba como haria la funcion segnu que mandaba con el AJAX, aunque la linea de codigo que me indicaste no me funciona, la siguiente me funciono de maravilla:

Código Javascript:
Ver original
  1. ajax.open("POST","externos/consultassG_dependencia.php?Depen="+Depen+"&Espec="+Espec,true);

EN el OPEN del AJAX para enviar ambos, no tube muchas respuestas mas que la tuya, asi que agradezco tu tiempo y paciencia.

Etiquetas: ajax, modo, php
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 18:30.