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

Autocompletar varios Campos

Estas en el tema de Autocompletar varios Campos en el foro de Frameworks JS en Foros del Web. Buenas señores, les explico mi situacion: Tengo una Base de datos con los campos "nombre", "dni", "ruc". En mi HTML tengo 3 campos tambien con ...
  #1 (permalink)  
Antiguo 26/07/2010, 17:15
 
Fecha de Ingreso: febrero-2009
Mensajes: 50
Antigüedad: 15 años, 10 meses
Puntos: 1
Exclamación Autocompletar varios Campos

Buenas señores, les explico mi situacion: Tengo una Base de datos con los campos "nombre", "dni", "ruc". En mi HTML tengo 3 campos tambien con los mismos nombres. LO que realice gracias a SAN GOOGLE y a este FORO es que al momento de escribir el nombre, automaticamente se completa el DNI.

Ahor mi problema es hacer q se autocomplete el DNI y el RUC a la vez. Tengo el codigo casi listo, lo que no tengo claro es como poder recibir en mi funcion del script dos variables, en este caso el "dni" y el "ruc". Ahi les copio el codigo.

Código del principal.php en donde esta el script, el problema es en function mostrar_respuesta(respuesta), que esta recibiendo una variable nada mas de la pagina script.php

Código PHP:
Ver original
  1. <html xmlns="http://www.w3.org/1999/xhtml">
  2. <head>
  3. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  4. <title>Generar Orden</title>
  5.  
  6. <script type="text/javascript" src="prototype.js"></script>
  7.  
  8. <script language="javascript">
  9. function conseguirResultados() {
  10. contenido = $('caja1').value;
  11. var peticion = new Ajax.Request( 'script.php', { method: 'post', parameters: 'cont='+contenido, onComplete: mostrar_respuesta } );
  12. }
  13.  
  14. function mostrar_respuesta(respuesta) {
  15. $('caja2').value = respuesta.responseText;
  16. $('caja3').value = respuesta.responseText;
  17. }
  18.  
  19. </script>
  20.  </head>
  21. <body style="margin:0px">
  22.  
  23. <form id="form1" name="form1" method="post" action="">
  24.             <fieldset class="orden">
  25.             <legend>Datos de Orden</legend>
  26.             <table width="760" border="0" cellspacing="0" cellpadding="0">
  27.               <tr>
  28.                 <th colspan="4" align="left" scope="col">&nbsp;</th>
  29.                 </tr>
  30.               <tr>
  31.                 <td align="left" class="Estilo4">Nombre</td>
  32.                 <td colspan="3" align="left"><input name="caja1" type="text" id="caja1" onchange="conseguirResultados();"/></td>
  33.               </tr>
  34.               <tr>
  35.                 <td align="left" class="Estilo4">DNI</td>
  36.                 <td colspan="3" align="left">
  37.                 <input name="caja2" type="text" id="caja2" /></td>
  38.                 </tr>
  39.               <tr>
  40.                 <td align="left" class="Estilo4">RUC</td>
  41.                 <td colspan="3" align="left"><input name="caja3" type="text" id="caja3" /></td>
  42.               </tr>
  43.               <tr>
  44.                 <td align="left" class="Estilo4">&nbsp;</td>
  45.                 <td colspan="3" align="left">&nbsp;</td>
  46.               </tr>
  47.             </table>
  48.            </fieldset>
  49.           </form>
  50.           </body>
  51. </html>

Codigo del script.php

Código PHP:
Ver original
  1. <?php
  2. $conexion = mysql_connect('localhost','root','') or die (mysql_error());
  3. mysql_select_db('sistema') or die (mysql_error());
  4.  
  5. $sql = mysql_query("SELECT dni_cliente FROM cliente WHERE nombre_cliente='".$_POST['cont']."'") or die (mysql_error());
  6.  
  7. $resultado_sql = mysql_fetch_array($sql);
  8.  
  9. echo $resultado_sql['dni_cliente'];
  10.  
  11.  
  12. ?>

He aqui mi confuncion, este script.php esta devolviendo un valor como hago para devolver dos valores y que lo reciba la function mostrar_respuesta(respuesta) de principal.php

No estoy seguro si solo hago dos "echo" o como?

Espero ser claro en mi duda. Gracias
  #2 (permalink)  
Antiguo 26/07/2010, 18:09
 
Fecha de Ingreso: enero-2009
Ubicación: Uruguay
Mensajes: 121
Antigüedad: 15 años, 11 meses
Puntos: 4
Respuesta: Autocompletar varios Campos

y si generas un xml con el php que te deje los 2 resultados.
y luego lo parseas en js y los muestras.
o quizas como son tan solo 2 resultados hacer un echo DNI . " - " . RUC y luego dicho string lo partes segun el "-" y te devolveria 2 string que seria el index 0 el DNI y el 1 el RUC.
con la funcion split("-") te crea dicho array.
__________________
www.sandant.com - Blog de Programacion y mucho mas

WWW.SPEDEVIGNER.COM SE DEJARA DE USAR EN UN MES
  #3 (permalink)  
Antiguo 26/07/2010, 18:57
 
Fecha de Ingreso: febrero-2009
Mensajes: 50
Antigüedad: 15 años, 10 meses
Puntos: 1
Respuesta: Autocompletar varios Campos

Gracias exxqizofrenicoo, estoy viendo como es el tema de XML, ya supuestamente lo genere en XML, podrias decirme si esta bien asi?????

Código PHP:
Ver original
  1. <?php
  2. $conexion = mysql_connect('localhost','root','') or die (mysql_error());
  3. //$conexion = mysql_connect('promobsworld.ipowermysql.com','sistema','sistema') or die (mysql_error());
  4. mysql_select_db('bd_sistema_psm') or die (mysql_error());
  5.  
  6. $sql = mysql_query("SELECT dni_cliente FROM cliente WHERE nombre_cliente='".$_POST['cont']."'") or die (mysql_error());
  7.  
  8. $resultado_sql = mysql_fetch_array($sql);
  9.  
  10. // echo $resultado_sql['dni_cliente'];
  11.  
  12. $xml = "<?xml version=\"1.0\" encoding=\"utf-8\"?>
  13. <datos>
  14. <dni>".$resultado_sql['dni_cliente']."</dni>
  15. <ruc>".$resultado_sql['ruc_cliente']."</ruc>
  16. </datos>";
  17. header("Content-Type: Text/xml");
  18. echo $xml;
  19. ?>

Pero ahora no se en realidad como obtenerlo en el JS, para que aparezca en cada caja de texto.
  #4 (permalink)  
Antiguo 26/07/2010, 20:15
 
Fecha de Ingreso: febrero-2009
Mensajes: 50
Antigüedad: 15 años, 10 meses
Puntos: 1
Respuesta: Autocompletar varios Campos

Estube intentando poniendo en el JS el sgte codigo

Código PHP:
Ver original
  1. <script language="javascript">
  2. function conseguirResultados() {
  3. contenido = $('caja1').value;
  4. var peticion = new Ajax.Request( 'script.php', { method: 'post', parameters: 'cont='+contenido, onComplete: mostrar_respuesta } );
  5. }
  6.  
  7. function mostrar_respuesta(respuesta) {
  8.    
  9. datos=respuesta.responseXML;
  10. $('caja2').value = datos.getElementsByTagName('dni').item(0).firstChild.data;
  11. $('caja3').value = datos.getElementsByTagName('ruc').item(0).firstChild.data;
  12.  
  13. }
  14.  
  15. </script>

Pero no me jala el "ruc", me jala el "dni" solamente. Que estaré haciendo mal? que me falta en ese codigo?
  #5 (permalink)  
Antiguo 26/07/2010, 21:33
 
Fecha de Ingreso: febrero-2009
Mensajes: 50
Antigüedad: 15 años, 10 meses
Puntos: 1
De acuerdo Respuesta: Autocompletar varios Campos

Cita:
Iniciado por josevm3000 Ver Mensaje
Gracias exxqizofrenicoo, estoy viendo como es el tema de XML, ya supuestamente lo genere en XML, podrias decirme si esta bien asi?????

Código PHP:
Ver original
  1. <?php
  2. $conexion = mysql_connect('localhost','root','') or die (mysql_error());
  3. //$conexion = mysql_connect('promobsworld.ipowermysql.com','sistema','sistema') or die (mysql_error());
  4. mysql_select_db('bd_sistema_psm') or die (mysql_error());
  5.  
  6. $sql = mysql_query("SELECT dni_cliente FROM cliente WHERE nombre_cliente='".$_POST['cont']."'") or die (mysql_error());
  7.  
  8. $resultado_sql = mysql_fetch_array($sql);
  9.  
  10. // echo $resultado_sql['dni_cliente'];
  11.  
  12. $xml = "<?xml version=\"1.0\" encoding=\"utf-8\"?>
  13. <datos>
  14. <dni>".$resultado_sql['dni_cliente']."</dni>
  15. <ruc>".$resultado_sql['ruc_cliente']."</ruc>
  16. </datos>";
  17. header("Content-Type: Text/xml");
  18. echo $xml;
  19. ?>

Pero ahora no se en realidad como obtenerlo en el JS, para que aparezca en cada caja de texto.
Ya esta solucionado, por si a alguien le interesa, SOLO m habia confundido en el QUERY...... se tiene que poner SELECT * y lo que sigue.

Gracias a los que me ayudaron

Etiquetas: ajax, campos, autocompletado
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 12:48.