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

Actualizar varios inputs utilizando ajax

Estas en el tema de Actualizar varios inputs utilizando ajax en el foro de Frameworks JS en Foros del Web. Hola a tod@s, alguien me podría decir cómo actualizar varios inputs en un formulario al seleccionar un campo con un autocomplete de ajax? Ejemplo: tenemos ...

  #1 (permalink)  
Antiguo 20/02/2007, 02:39
 
Fecha de Ingreso: marzo-2003
Ubicación: València
Mensajes: 53
Antigüedad: 21 años, 1 mes
Puntos: 0
Actualizar varios inputs utilizando ajax

Hola a tod@s,

alguien me podría decir cómo actualizar varios inputs en un formulario al seleccionar un campo con un autocomplete de ajax?

Ejemplo: tenemos un input que al teclear alguna letra muestra una lista para autocompletar (esta función está desarrollada con Ajax - script.aculo.us). Una vez seleccionamos este valor, quiero que se rellenen otros 2 campos.
Podría tratarse de seleccionar el código postal y que entones se rellenar el nombre de la ciudad y la provincia.

Muchas gracias por adelantado.
  #2 (permalink)  
Antiguo 20/02/2007, 09:57
 
Fecha de Ingreso: marzo-2003
Ubicación: València
Mensajes: 53
Antigüedad: 21 años, 1 mes
Puntos: 0
Re: Actualizar varios inputs utilizando ajax

Al final encontré esta solución.

Por si a alguien le interesa:

http://www.glanzani.com.ar/?p=73

Saludos.
  #3 (permalink)  
Antiguo 21/02/2007, 20:19
 
Fecha de Ingreso: enero-2007
Ubicación: Cochabamba - Bolivia
Mensajes: 346
Antigüedad: 17 años, 3 meses
Puntos: 2
Re: Actualizar varios inputs utilizando ajax

Hola! Saludos...

Lo que haces es autocompletar un input y con el resultado de tu seleccion se llenan automaticamente otros inputs con esa seleccion?? Por ejemplo si escribes "Ma" y te muestra una lista de "Marcelo, Maria, Martha, ETC" escoges "Marcelo" y "Marcelo" se llena en otros inputs??

Yo estoy buscando distintos autompletar en distintos INPUTS, no sabes por si acaso como hacer eso??

Disculpa que responda con una pregunta...
Puedo hacer un autocompletar en un solo formulario, en realidad no se como hacer mas...
  #4 (permalink)  
Antiguo 22/02/2007, 02:23
 
Fecha de Ingreso: marzo-2003
Ubicación: València
Mensajes: 53
Antigüedad: 21 años, 1 mes
Puntos: 0
Re: Actualizar varios inputs utilizando ajax

Hola makeitslow,

lo que hago no es rellenar "Marcelo" en varios inputs sino que, por ejemplo, tenemos estos pares de valores:

Marcelo, Barcelona,
Maria, Estocolmo
Martha, Caracas

y luego dos inputs: nombre y ciudad.

Hacemos el desplegable de nombre escribiendo "Ma" y la lista nos da las opciones Marcelo, Maria y Martha. Seleccionamos Marcelo y, automáticamente, se rellanan los inputs nombre y ciudad con "Marcelo" y "Barcelona" respectivamente.

Lo bueno es que en la lista ajax para el autocomplete el usuario no ve las ciudades.

Por cierto, he visto que jquery tiene una función para hacer esto: "jquery.autocomplete.js". Puedes ver más info en http://www.dyve.net/jquery/?autocomplete

Saludos.
  #5 (permalink)  
Antiguo 22/02/2007, 07:43
 
Fecha de Ingreso: enero-2007
Ubicación: Cochabamba - Bolivia
Mensajes: 346
Antigüedad: 17 años, 3 meses
Puntos: 2
Re: Actualizar varios inputs utilizando ajax

Interesante lloptor, jquery nos da la opcion que comentabas, el de escribir algo y autocompletar con datos interelaciones a la seleccion otros campos.

Interesante para mantener condidencialidad de datos.

Gracias por responder tan pronto y por tu atencion prestada.

Disculpa que sea insistente, pero no sabes nada al respecto de mi duda? De como hacer varios autocompletes con diferentes consultas a la base de datos? O simplemente como hacer varios autocompletes en un PHP.

Saludos y gracias!
  #6 (permalink)  
Antiguo 22/02/2007, 11:12
 
Fecha de Ingreso: marzo-2003
Ubicación: València
Mensajes: 53
Antigüedad: 21 años, 1 mes
Puntos: 0
Re: Actualizar varios inputs utilizando ajax

Hola de nuevo y pregunta lo que haga falta. Intentaré responder siempre que pueda...

Si necesitas hacer varias consultas a la base de datos, lo puedes hacer en el mismo script PHP que te devuelve la información al autocomplete. Concatena los valores como hace jquery, y devuélvelos "ocultos" en el listado. Una vez que el usuario seleccione una opción, puedes rellenar el resto de inputs con esos datos "ocultos".

Espero que te haya servido de ayuda, si no he entendido bien tu pregunta envía otro post por favor.


Saludos.
  #7 (permalink)  
Antiguo 22/02/2007, 18:46
 
Fecha de Ingreso: enero-2007
Ubicación: Cochabamba - Bolivia
Mensajes: 346
Antigüedad: 17 años, 3 meses
Puntos: 2
Re: Actualizar varios inputs utilizando ajax

Muchisimas gracias nuevamente lloptor por tu atencion y disposicion a responder, pero creo que no me entendiste, lo que yo quiero hacer, es en un pagina php, donde tengo un campo para NOMBRE otro para APELLIDO y otro para DIRECCION, se puedan autocompletar con sus respectivas listas.

O sea en NOMBRE si escribo "Ma" me muestre "MARCELO", "MARIA", "MARCO"
en APELLLIDO si escribo "Ma" me muestre "Magallanes", "Manto", "Martinez"
en DIRECCION si escribo "Ma" me muestre direcciones que empiecen con "Ma"..

Yo lo hice utilizando unos AJAX con JS que postearon por ahi y solo me permite hacerlo con una sola consulta, o sea que me autocompleta todos los campos con los mismos datos, o sea en APELLIDO y DIRECCION me autocompleta con MARCELO, MARIA, MARCO....

Por ejemplo utilice esto, y veo que para utilizar un metodo del archivo JS necesito llamarlo en el body
Código PHP:
<body onload="asignaVariables();">

<
div class="centrado">
<
table border="0" style="margin:auto; width:400px;">
  <
tr>
    <
td id="fila_1" class="punteado" style="width:50%">
        <
input type="text" id="input_1" class="inputs">
        <
input id="boton_1" onclick="nuevoDato();" type="button" value="Ok" class="botonOk">
    </
td>
    <
td id="fila_2" class="punteado" style="width:50%">
        <
div id="contenedor">

            <
input type="text" id="input_2" class="inputs"

            
onfocus="if(document.getElementById('lista').childNodes[0]!=null && this.value!='') { filtraLista(this.value); formateaLista(this.value); reiniciaSeleccion(); document.getElementById('lista').style.display='block'; }" 
            
onblur="if(v==1) document.getElementById('lista').style.display='none';" 
            
onkeyup="if(navegaTeclado(event)==1) {
                clearTimeout(ultimoIdentificador); 
                ultimoIdentificador=setTimeout('rellenaLista()', 1000); }"
>
    
            <
div id="lista" onmouseout="v=1;" onmouseover="v=0;"></div>
        </
div>
    </
td>
  </
tr>
</
table>

<
div class="aviso" id="mensaje"></div>
</
div>

</
body
Y ese metodo es este:

Código:
function asignaVariables()
{
	// Funcion que asigna variables que se usan a lo largo de las funciones	
	v=1; nuevaBusqueda=1; busqueda=null; ultimaBusquedaNula=null;
	divLista=document.getElementById("lista");
	inputLista=document.getElementById("input_2");
	elementoSeleccionado=0;
	ultimoIdentificador=0;
}
Intente creando nuevos archivos con distintas variables para cada campo, pero no me soporta el uso de estos.

Gracias!!... y espero tu pronto respuesta.
  #8 (permalink)  
Antiguo 23/02/2007, 09:05
 
Fecha de Ingreso: enero-2007
Ubicación: Cochabamba - Bolivia
Mensajes: 346
Antigüedad: 17 años, 3 meses
Puntos: 2
Re: Actualizar varios inputs utilizando ajax

PD. Estoy utilizando los codigos de:
http://www.formatoweb.com.ar/ajax/
  #9 (permalink)  
Antiguo 23/02/2007, 10:00
 
Fecha de Ingreso: marzo-2003
Ubicación: València
Mensajes: 53
Antigüedad: 21 años, 1 mes
Puntos: 0
Re: Actualizar varios inputs utilizando ajax

Hola makeitslow!
Ahora lo entiendo!

Pues yo utilizo "script.aculo.us" para hacer este tipo de autocompletes. Te explico cómo lo hago yo para ver si te sirve y puedes utilizarlo.

Primero tienes que descargarte las librerias de script.aculo.us (http://script.aculo.us/). En el zip hay muchas cosas pero lo que te hace falta en un principio son los archivos prototype.js y scriptaculous.js. Los dos archivos se encuentran en el directorio lib y src respectivamente.
Copia estos dos archivos en algún lugar dentro del directorio de tu web (dónde acostumbres a dejar los archivos javascript).

Bien, ahora en tu archivo principal (el que contiene el formulario), incluye las librerías javascript en el head. Así:
Código HTML:
 <script type="text/javascript" src="prototype.js"></script>

  <script type="text/javascript" src="scriptaculous.js"></script> 
En "src" utiliza la ruta exacta a tus archivos.

Ahora hay que incluir los "inputs" necesarios. En tu caso: uno para nombre, otro para apellido y otro para dirección.
Código HTML:
<p>
<input type="text" id="nombre" name="nombre" autocomplete="off"/>
<div id="nombre_choices" class="autocomplete"></div>
</p>
<p>
<input type="text" id="apellidos" name="apellidos" autocomplete="off"/>
<div id="apellidos_choices" class="autocomplete"></div>
</p>
<p>
<input type="text" id="direccion" name="direccion" autocomplete="off"/>
<div id="direccion_choices" class="autocomplete"></div>
</p> 
Por último, hay que incluir el código javascript que realiza las llamadas a los scripts (PHP, en tu caso) que devuelven los valores.
Código HTML:
<script type="text/javascript">
new Ajax.Autocompleter("nombre", "nombre_choices", "nombre.php", {});
new Ajax.Autocompleter("apellidos", "apellidos_choices", "apellidos.php", {});
new Ajax.Autocompleter("direccion", "direccion_choices", "direccion.php", {});
</script> 
Cada uno de los archivos PHP devolverá una lista HTML (<ul>,<li>...) con al información. Puedes utilizar la variable $_POST["id_del_input"], para obtener los caracteres que ha insertado el usuario de momento para limitar tu búsqueda.

Por ejemplo (nombre.php):
Código PHP:
<?php
$prefix 
$_POST["nombre"];
$query "SELECT * FROM tabla WHERE nombre LIKE '$prefix%'";

/* ejecutar query obtener resultados
y devolver lista*/
echo "<ul><li>MARCELO</li><li>MARIA</li><li>MARCO</li></ul>";

return 
1;
?>
Suerte! Y saludos!

PD: Aquí tienes más información sobre la clase Ajax.autocompleter para que puedes pasarle más parámetros como, por ejemplo, número de caracteres mínimos para llamar a los archivos de búsqueda.
http://wiki.script.aculo.us/scriptac....Autocompleter
  #10 (permalink)  
Antiguo 24/02/2007, 07:53
 
Fecha de Ingreso: enero-2007
Ubicación: Cochabamba - Bolivia
Mensajes: 346
Antigüedad: 17 años, 3 meses
Puntos: 2
Re: Actualizar varios inputs utilizando ajax

Gracias lloptor, eso es justamente lo que necesitaba, lo probare y te aviso que ondas, eres muy amable, gracias por tu atencion y colaboracion otra vez!

Hasta pronto!
  #11 (permalink)  
Antiguo 25/02/2007, 00:42
 
Fecha de Ingreso: enero-2007
Ubicación: Cochabamba - Bolivia
Mensajes: 346
Antigüedad: 17 años, 3 meses
Puntos: 2
Re: Actualizar varios inputs utilizando ajax

Hola lloptor, tengo una interrogante, ahora me propongo a probar los scripts y demas.

Dime que ondas con esto:

Código PHP:
<?php
$prefix 
$_POST["nombre"];
$query "SELECT * FROM tabla WHERE nombre LIKE '$prefix%'";

/* ejecutar query obtener resultados
y devolver lista*/
echo "<ul><li>MARCELO</li><li>MARIA</li><li>MARCO</li></ul>";

return 
1;
?>
El echo que utilizas aqui para que es?? Es solo una prueba?? Por que la verdad
yo necesito todos lo nombres que estan en TABLA.

Disculpa si mis preguntas son un poco tontas, es que no soy muy bueno en esto. De todos modos gracias! Me salvaste. Te estoy muy agradecido.

Una cosa mas, los autocomplete, funcionan sin ningun problema con numeros? Tuve que cambiar de INT a VARCHAR algunos campos de mi tabla para ver si eso solucionaba el problema que tenia con el autocomplete, pero no pasa nada. Cual es el problema? No sucede nada con el autocomplete cuando trato de hacerlo con datos numericos, aunque los ponga y cambie en VARCHAR.
  #12 (permalink)  
Antiguo 25/02/2007, 09:35
 
Fecha de Ingreso: enero-2007
Ubicación: Cochabamba - Bolivia
Mensajes: 346
Antigüedad: 17 años, 3 meses
Puntos: 2
Re: Actualizar varios inputs utilizando ajax

Hola lloptor, disculpa que insista tanto con este tema, hoy probe los archivos y te cuento que no me corre, no me sale nada del autocompletar... Tal vez estoy equivocado y no estoy haciendo nada en lugar de:

/* ejecutar query obtener resultados
y devolver lista*/



Ahi tengo que ejecutar la consulta con comando de MYSQL? Luego cargar los resultados en una variable?? Y luego recorrerlo??? Que tengo que hacer estimado Lloptor? Por que la consulta pide todos los datos??? o sea:

$query = "SELECT * FROM tabla WHERE nombre LIKE '$prefix%'";

Hice todo lo que recomendaste, que hago mal o que me falta??

Gracias lloptor!
  #13 (permalink)  
Antiguo 01/03/2007, 17:14
 
Fecha de Ingreso: enero-2007
Ubicación: Cochabamba - Bolivia
Mensajes: 346
Antigüedad: 17 años, 3 meses
Puntos: 2
Re: Actualizar varios inputs utilizando ajax

LLoptor, en lugar de /* en el codigo de NOMBRE.PHP (por ejemplo) coloque esto:

NOMBRE.PHP
Código PHP:
<?php 
$prefix 
$_POST["nombrescs"]; 

$coneccion=mysql_connect("localhost""root""") or die(mysql_error());
        
mysql_select_db("usa"$coneccion) or die(mysql_error());
        
        
//$consulta=mysql_query("SELECT nombre FROM autocompletador WHERE MATCH(nombre) AGAINST('".$valor."*' IN BOOLEAN MODE) LIMIT 0, 22") or die(mysql_error());
        
$consulta=mysql_query("SELECT * FROM historia_clinica WHERE nombres_cs LIKE '$prefix%' LIMIT 0, 22");
        
        
mysql_close($coneccion);
        
        
$cantidad=mysql_num_rows($consulta);
        if(
$cantidad==0)
        {
            
/* 0: no se vuelve por mas resultados
            vacio: cadena a mostrar, en este caso no se muestra nada */
            
echo "0&vacio";
        }
        else
        {
            if(
$cantidad>20) echo "1&"
            else echo 
"0&";
    
            
$cantidad=1;
            while((
$registro=mysql_fetch_row($consulta)) && $cantidad<=20)
            {
                echo 
".$registro[0].";
                
// Muestro solo 20 resultados de los 22 obtenidos
                
$cantidad++;
            }
        }

/* ejecutar query obtener resultados 
y devolver lista 
echo "<ul><li>MARCELO</li><li>MARIA</li><li>MARCO</li></ul>"; 
return 1; */
?>
Esta fallando algo??? Ya me perdi.
  #14 (permalink)  
Antiguo 02/03/2007, 05:34
 
Fecha de Ingreso: marzo-2003
Ubicación: València
Mensajes: 53
Antigüedad: 21 años, 1 mes
Puntos: 0
Re: Actualizar varios inputs utilizando ajax

Hola makeitslow,
perdona por la tardanza pero no he visitado el foro en unos cuantos días.

Lo que tienes que hacer es generar una lista HTML con los datos que te devuelve el script. Es decir:

Código PHP:
$aux "<ul>";
while((
$registro=mysql_fetch_row($consulta)) && $cantidad<=20)
{
 
// Añadir cada list item
 
$aux .= "<li>".$registro[0]."</li>";
 
// Muestro solo 20 resultados de los 22 obtenidos
 
$cantidad++;
}
$aux .= "</ul>";

echo 
$aux;
return; 
Por otra parte, no hay problema en que se trate de valores numéricos.

Suerte y saludos!
  #15 (permalink)  
Antiguo 03/03/2007, 11:09
 
Fecha de Ingreso: enero-2007
Ubicación: Cochabamba - Bolivia
Mensajes: 346
Antigüedad: 17 años, 3 meses
Puntos: 2
Re: Actualizar varios inputs utilizando ajax

Hola Lloptor.

Antes que nada gracias otra vez por estar presente a mis dudas y de las demas personas del foro. Gracias por tu colaboracion.

Te cuento que estuve restructurando mi codigo y parece que tengo algun error en la pagina, no me muestra la lista de la consulta en el textfield, o sea en otras palabras no me autocompleta nada. Mira te muestro el codigo de mi pagina donde estan los textfield para llenar datos que se autcompleten:

Primero comieza con el head que me dijiste:



Código PHP:
<script type="text/javascript" src="prototype.js"></script>
<script type="text/javascript" src="scriptaculous.js"></script> 
No les doy src por que estan en el mismo directorio.

luego continuo con un script para anular la tecla enter en la pagina:
Código HTML:
<SCRIPT LANGUAGE="JavaScript"> 
function getKey(keyStroke) {  
isNetscape=(document.layers); 
eventChooser = (isNetscape) ? keyStroke.which : event.keyCode;    
if (eventChooser==13) {      
   return false; 
   }  
} 
document.onkeypress = getKey;   
</script> 
Luego llamo algunas librerias y creo algunas variables:
Código PHP:
<? require("../conexion.php");
$sql="select nombres_med from medico";
$sql2="select nombre_empresa from campana";

conectar_bd();
$res=consulta_bd$sql );
$res2=consulta_bd$sql2 );

$medicos=cuantos_registros_bd$res );
$empresas=cuantos_registros_bd$res2 );
?>
Luego abro un formulario donde estaran los textfield con los autocompletes: (Este es un pedazo donde esta el textfield de nombre)
Código PHP:
<div align="center">
<
form action="validadorCaja.php" method="post" target="principal">

    <
p><font color="#003366" size="6" face="Berlin Sans FB">REGISTRAR NUEVO CARNET 
      SANITARIO 
</font></p>
    <
table width="84%" >
<
tr
        <
td><div align="right"><font color="#000066" size="3" face="Berlin Sans FB">Nombres:</font></div></td>
        <
td colspan="2">
<
input type="text" id="nombre" name="nombre" autocomplete="off"/>
<
div id="nombre_choices" class="autocomplete"></div>
 
        </
td>
      </
tr
Y asi sucesivamente.

Me puse a pensar que tal vez este codigo de las llamadas deberia ponerlo en algun orden especifico... yo lo puse despues de los textfield dentro del form y tambien a un inicio junto con mi script que bloquea la tecla enter, esta todo bien?

Código HTML:
<script type="text/javascript">
new Ajax.Autocompleter("nombre", "nombre_choices", "nombre.php", {});
new Ajax.Autocompleter("apellidos", "apellidos_choices", "apellidos.php", {});
new Ajax.Autocompleter("direccion", "direccion_choices", "direccion.php", {});
</script> 
Afecta el orden??? De todos modos mi NOMBRE.PHP esta tal cual me indicaste o sea asi:

Código PHP:
<?php 
$prefix 
$_POST["nombres"]; 

$coneccion=mysql_connect("localhost""root""") or die(mysql_error());
        
mysql_select_db("usa"$coneccion) or die(mysql_error());
        
$consulta=mysql_query("SELECT * FROM historia_clinica WHERE nombres LIKE '$prefix%' LIMIT 0, 22");
        
        
$aux "<ul>"
while((
$registro=mysql_fetch_row($consulta)) && $cantidad<=20

 
// Añadir cada list item 
 
$aux .= "<li>".$registro[0]."</li>"
 
// Muestro solo 20 resultados de los 22 obtenidos 
 
$cantidad++; 

$aux .= "</ul>"

echo 
$aux
return; 
?>
Que ondas?? Me equivoque en algo?? Gracias otra vez...Hasta pronto!
  #16 (permalink)  
Antiguo 05/03/2007, 09:56
 
Fecha de Ingreso: enero-2007
Ubicación: Cochabamba - Bolivia
Mensajes: 346
Antigüedad: 17 años, 3 meses
Puntos: 2
Re: Actualizar varios inputs utilizando ajax

PD.: Al cargar todo, en la pagina me vota que tiene error en la parte inferior, o sea tiene ese simbolo que dice "Listo" pero con error.
  #17 (permalink)  
Antiguo 06/03/2007, 02:12
 
Fecha de Ingreso: marzo-2003
Ubicación: València
Mensajes: 53
Antigüedad: 21 años, 1 mes
Puntos: 0
Re: Actualizar varios inputs utilizando ajax

Hola makeitslow,
perdona por mi retraso. He estado fuera estos días y me ha sido imposible responder.

Me podrías indicar cuál es el error javascript que te da cuando cargas la página. Es decir, dices que aparece "Listo" pero con error, así que ¿cuál es el error?

Eso nos puede ayudar a encontrar el problema.

Si no encontramos el problema, te enviaré un ejemplo completo mío que sí funciona.

Saludos,

nacho.
  #18 (permalink)  
Antiguo 06/03/2007, 02:15
 
Fecha de Ingreso: marzo-2003
Ubicación: València
Mensajes: 53
Antigüedad: 21 años, 1 mes
Puntos: 0
Re: Actualizar varios inputs utilizando ajax

Otra cosa que se me ocurre es que pruebes si "nombre.php" funciona correctamente para descartar que venga por ahí el error.
Cambia la primera línea:
Código PHP:
$prefix $_POST["nombres"]; 
a:
Código PHP:
$prefix $_GET["nombres"]; 
Y llama a tu script "nombre.php" de la siguiente manera:

http://lo/que/sea/nombre.php?nombres=a

Comprueba que te muestra una lista HTML con los nombres que empiezan por "a".

Suerte!
  #19 (permalink)  
Antiguo 06/03/2007, 10:00
 
Fecha de Ingreso: enero-2007
Ubicación: Cochabamba - Bolivia
Mensajes: 346
Antigüedad: 17 años, 3 meses
Puntos: 2
Re: Actualizar varios inputs utilizando ajax

Gracias lloptor... De entrada agradezco tu colaboracion desinteresada y tu dedicacion al Foro...

Al decir error, me referia al logo que te muestra en la parte super inferior de la pagina del navegador, en explorer cuando cargas algo, al terminar te dice LISTO o a veces te dice ERROR y significa que TAL VEZ LA PAGINA NO PUEDA VERSE CORRECTAMENTE, es un simbolo amarillo con un rayo. Pero como dices no creo que eso ayude mucho, lo mas probable es que estoy haciendo algo mal de sintaxis, ese mismo error me salia cuando declaraba dos veces alguna variable de algun input o que se yo....

Voy a intentar con lo que me dices, el orden de las declaraciones de los scripts no importa entonces no???

Cuidate mucho y saludos estimado Lloptor.
  #20 (permalink)  
Antiguo 06/03/2007, 10:03
 
Fecha de Ingreso: marzo-2003
Ubicación: València
Mensajes: 53
Antigüedad: 21 años, 1 mes
Puntos: 0
Re: Actualizar varios inputs utilizando ajax

Hola,
hazle clic sobre el icono y te mostrará los errores.

De todas maneras haz también la otra prueba.

Saludos.
  #21 (permalink)  
Antiguo 07/03/2007, 12:28
 
Fecha de Ingreso: enero-2007
Ubicación: Cochabamba - Bolivia
Mensajes: 346
Antigüedad: 17 años, 3 meses
Puntos: 2
Re: Actualizar varios inputs utilizando ajax

HOLA ESTIMADO NACHO!

TE cuento que probe lo del nombre.php con la asignacion de valor a la variable, y me muestra correctamente la lista HTML con los valores con la letra "a".

Cual puede ser entonces el problema?

La imagen que me muestra al cargar el PHP principal es:


Me lo muestra en la parte inferior izquierda de la barra de estado del navegador:


Ya no se que mas probar... Tal vez por que uso muchos JAVASCRIPTS ahi? El orden? El bloquear la tecla ENTER?? O mis archivos PROTOTYPE y SCRIPTACULOUS no estan bien definidos en su SRC o no son correctos? Mi archivo NOMBRE.PHP queda asi:

Código PHP:
<?php 
$prefix 
$_GET["nombrescs"]; 

$coneccion=mysql_connect("localhost""root""") or die(mysql_error());
        
mysql_select_db("usa"$coneccion) or die(mysql_error());
        
//$consulta=mysql_query("SELECT nombres_cs FROM historia_clinica WHERE MATCH(nombres_cs) AGAINST('".$prefix."*' IN BOOLEAN MODE) LIMIT 0, 22") or die(mysql_error());

$consulta=mysql_query("SELECT nombres_cs FROM historia_clinica WHERE nombres_cs LIKE '$prefix%'");
        
$cantidad=mysql_num_rows($consulta);

$aux "<ul>"
while((
$registro=mysql_fetch_row($consulta)) && $cantidad<=20

 
// Añadir cada list item 
 
$aux .= "<li>".$registro[0]."</li>"
 
// Muestro solo 20 resultados de los 22 obtenidos 
 
$cantidad++; 

$aux .= "</ul>"

echo 
$aux
return; 
?>
Nuevamente te agradezco de antemano Nacho y disculpa por dar tanta lata. Gracias.

Última edición por makeitslow; 07/03/2007 a las 12:44
  #22 (permalink)  
Antiguo 08/03/2007, 09:17
 
Fecha de Ingreso: enero-2007
Ubicación: Cochabamba - Bolivia
Mensajes: 346
Antigüedad: 17 años, 3 meses
Puntos: 2
Re: Actualizar varios inputs utilizando ajax

Nacho... te cuento que revise y me di cuenta que el error al cargar la pagina es de:

Código PHP:
<script type="text/javascript">
new 
Ajax.Autocompleter("nombre""nombre_choices""nombre.php", {});
new 
Ajax.Autocompleter("apellidos""apellidos_choices""apellidos.php", {});
new 
Ajax.Autocompleter("direccion""direccion_choices""direccion.php", {});
</script> 
Cuando quito este codigo, la pagina se carga correctamente.

El error es en:

Código PHP:
new Ajax.Autocompleter("nombre""nombre_choices""nombre.php", {}); 
Creo que tengo problemas con el Ajax.Autocompleter
  #23 (permalink)  
Antiguo 09/03/2007, 15:34
 
Fecha de Ingreso: marzo-2007
Mensajes: 4
Antigüedad: 17 años, 1 mes
Puntos: 0
Mostrar campos automaticamente

Hola:
Ando buscando algunas respuestas y espero que me ayuden, tengo un problema aqui ya que quiero hacer un update en el formulario, el caso es el siguiente:

tengo un formulario que en el inserto los datos del usuario, o sea el nombre, apellidos, sexo, edad , entre otros, y a ese lo inserto en mis bases de datos.

ahora la duda es:
en el formulario modificar tengo un campo que la llave es el nombre, que al seleccionar ese nombre los otros campos que tengo en mi formulario que es el update se me llenen automaticamente, o sea lo que tengo en mi base de datos para asi poder llevar a cabo la modicacion de los mismos...

espero que alguien me ayude en esto, haaa , el lenguaje es php.
  #24 (permalink)  
Antiguo 10/03/2007, 12:01
 
Fecha de Ingreso: enero-2007
Ubicación: Cochabamba - Bolivia
Mensajes: 346
Antigüedad: 17 años, 3 meses
Puntos: 2
Re: Actualizar varios inputs utilizando ajax

Hola, yo te recomiendo que te crees primero este archivo con el nombre CONEXION.PHP, que te servira tener acceso a tu bd con metodos mas simplificadas, solo tienes que cambiar el valor del nombre de tu base de datos, tu direccion, usuario y password:

CONEXION.PHP:
Código PHP:
<?php

// Libreria para conectarse, desconectarse y hacer consultas a una BD MySql
// Datos de conexion a una BD Mysql

    
$servidorBD "NOMBRE DEL SERVIDOR";
$usuario "NOMBRE DE USUARIO";
$clave "CLAVE DEL USUARIO";
$BD "NOMBRE DE LA BASE DE DATOS";
$enlace 0;

// funcion de conexion a una BD MySql
function conectar_bd()
 {
   global 
$enlace;
   global 
$servidorBD;
   global 
$usuario;
   global 
$clave;
   global 
$BD;
   
$enlace mysql_connect($servidorBD$usuario$clave)
        or die(
"Existio un error al intentar conectarse al servidor de base de datos");
   
mysql_select_db($BD$enlace)
        or die(
"Existio un error al intentar seleccionar la base de datos");
 }

//     Esta funcion cierra la conexion con una BD

function consulta_bd$sql )
 {
   global 
$enlace;
   
$res mysql_query$sql$enlace )
           or die( 
"No se pudo realizar la consulta" );
   return 
$res;
 }

//     Esta funcion saca cuantos registros es el resultado de una consulta

function cuantos_registros_bd$res )
 {
   
$cuantos mysql_num_rows($res);
   return 
$cuantos;
 }

//     Esta funcion saca un registro del resultado de una consulta

function sacar_registro_bd$res )
 {
   
$registro mysql_fetch_array($res);
   return 
$registro;
 }


//     Esta funcion cierra la conexion con una BD

function desconectar_bd()
 {
   global 
$enlace;
   
mysql_close($enlace); 
 }
?>
Si sabes usar bien los comandos de MYSQL pues mandas los datos de tu consulta a un arreglo para luego llamarlos a una variable dependiendo cual necesitas. Pero siguien con mi linea de proceso, luego en tu formulario "modificar" en los TEXTFIELDS o demas campos donde anteriormente ingresaste datos, les pones el valor que necesitas que corresponda, por ejemplo para el caso de la tabla de una HISTORIA_CLINICA, recuperamos los datos NUMERO_CARNET y NUMERO_FOTO del paciente que tiene una llave que es ID_CS.

Primero no te olvides de llamar a tu archivo CONEXION.PHP que tiene que estar en el mismo directorio, luego haces una consulta:

Código PHP:
<?php
require_once("../conexion.php");

conectar_bd();
$consulta "SELECT * FROM historia_clinica WHERE id_cs=".$_POST["numeroeditar"]."";
//numeroeditar es el valor que escogiste para recuperar los datos.

$resultado consulta_bd$consulta );
$num_reg=cuantos_registros_bd$resultado );
$registro sacar_registro_bd$resultado );
        
if(
$num_reg>=1)
{
?>

<div align="right"><font color="#000066" size="3" face="Berlin Sans FB">
Nº Carnet Sanitario:</font></div>

<input name="carnetsanitario" type="text" 
value="<?php echo $registro['NUMERO_CARNET']; ?>" size="15" maxlength="11">

<div align="right"><font color="#000066" size="3" face="Berlin Sans FB">
Nº de Fotografia:</font></div>

<input name="numerofoto" type="text" 
value="<?php echo $registro['NUMERO_FOTO']; ?>" size="10" maxlength="4"
Como podras en lo que esta en negrita, es la llamada del dato correspondiente de nuestra lista de datos $registro[], pidiendo directamente el valor del campo en este caso [NUMERO_CARNET] y [NUMERO_FOTO] de la tabla HISTORIA_CLINICA. La gracia esta en poner en el VALUE del TEXTFIELD el valor del dato en la BD que ya lo tenemos almacenado en $registro a partir de WHERE ID_CS, que en tu caso seria WHERE NOMBRE.

Si quieres algo mas completo avisa. Espero te sirva.

Última edición por makeitslow; 10/03/2007 a las 12:12
  #25 (permalink)  
Antiguo 13/03/2007, 12:51
 
Fecha de Ingreso: marzo-2003
Ubicación: València
Mensajes: 53
Antigüedad: 21 años, 1 mes
Puntos: 0
Re: Actualizar varios inputs utilizando ajax

Hola makeitslow,
he estado haciendo unas pruebas y creo que ya sé dónde está el problema.
En alguno de los mensajes te dije que utilizaras los archivos scriptaculous.js y prototype.js. Pues bien, estos dos archivos son los que tienes que incluir como estás haciendo, pero, además, hay otros archivos que tienen que estar en el mismo directorio que estos dos.

Descarga el zip de scriptaculous http://script.aculo.us/dist/scriptaculous-js-1.7.0.zip
Y pon todos los archivos donde tenías prototype.js y scriptaculo.us.

Espero que funcione.

Saludos.

Se me olvidaba! Es muy importante que el siguiente código aparezca después de haber creado los inputs (cajas de texto).
Cita:
<script type="text/javascript">
new Ajax.Autocompleter("nombre", "nombre_choices", "nombre.php", {});
new Ajax.Autocompleter("apellidos", "apellidos_choices", "apellidos.php", {});
new Ajax.Autocompleter("direccion", "direccion_choices", "direccion.php", {});
</script>

Última edición por lloptor; 13/03/2007 a las 12:56 Razón: Olvido
  #26 (permalink)  
Antiguo 13/03/2007, 20:51
 
Fecha de Ingreso: enero-2007
Ubicación: Cochabamba - Bolivia
Mensajes: 346
Antigüedad: 17 años, 3 meses
Puntos: 2
Re: Actualizar varios inputs utilizando ajax

Gracias Lloptor, yo te preguntaba tambien si es que el orden de mis javascripts estaban bien, el codigo de las declaraciones de los php con los ajaxs, los hacia todos al principio... pequeño detalle no?? Recibi tu mail, muchisimas gracias, ahora copiare todos los docs del ZIP donde estan el scriptaculous.js y el prototype.js... pero en el ZIP todo esta en 2 carpetas, LIB y SRC... los mezclo??? de todos modos voy a probar de ambos modos.

Nuevamente muchas gracias Nacho.

Saludos y cuidate mucho.
  #27 (permalink)  
Antiguo 14/03/2007, 02:17
 
Fecha de Ingreso: marzo-2003
Ubicación: València
Mensajes: 53
Antigüedad: 21 años, 1 mes
Puntos: 0
Re: Actualizar varios inputs utilizando ajax

Hola!
Ponlo todo junto (contenidos de lib y scr) y perdona por que se me olvidara ese detalle.
Resulta que yo utilizo una librería que se llama projax para todo el tema de AJAX y PHP y no me doy cuenta del código HTML si no voy a mirarlo. A la hora de mandarte el ejemplo me dí cuenta!
Por si te interesa, projax es una librería para el framework CodeIgniter que está muy bien!

Suerte y saludos!
  #28 (permalink)  
Antiguo 14/03/2007, 08:40
 
Fecha de Ingreso: enero-2007
Ubicación: Cochabamba - Bolivia
Mensajes: 346
Antigüedad: 17 años, 3 meses
Puntos: 2
Re: Actualizar varios inputs utilizando ajax

Muchisimas gracias Nacho, todo me corre great.... cuantas cajas de texto quiera.... era ese problema, el de declarar al principio los valores y los php para las cajas de texto y ademas que me faltaban los archivos.

Como te decia en el mail, te estoy muy agradecido por tu ayuda, espero que le sirva a otras personas mas, ya que es algo muy util y practico para cualquier diseño....

Hasta pronto Nacho y cuidate mucho... HAVE A NICE DAY!
  #29 (permalink)  
Antiguo 02/04/2007, 23:07
 
Fecha de Ingreso: enero-2007
Ubicación: Cochabamba - Bolivia
Mensajes: 346
Antigüedad: 17 años, 3 meses
Puntos: 2
Re: Actualizar varios inputs utilizando ajax

Hola a todos, creo que este es el lugar adecuado para preguntar respecto a un detalle del autocompletar.

Saludos Nacho, ya paso mucho tiempo de que solucione el problema de los autocompletar multiples, todo una maravilla, ahora resulta que tengo una duda, en cualquier lado de mis paginas php e inclusive en las unicamente hmtl, puedo ver todo el contenido de mis textfields y textareas con cualuiqer tipo de caracter que haya ingresado con anterioridad que esta en la base de datos, por ejemplo: # ª º &

Pero en el desplegable del autocompletar, estos simbolos no se muestran y en lugar de los simbolos me muestra un cuadrado, eso es por que no estoy utilizando algun estilo??? Puedo solucionar eso sin utilizar un css?


Gracias y espero su pronta respuesta.
  #30 (permalink)  
Antiguo 03/04/2007, 15:17
 
Fecha de Ingreso: marzo-2003
Ubicación: València
Mensajes: 53
Antigüedad: 21 años, 1 mes
Puntos: 0
Re: Actualizar varios inputs utilizando ajax

Hola makeitslow,

me alegro de que todo te vaya bien de momento. El problema que me comentas yo lo tuve también y lo resolví de la siguiente forma.

En la página dónde tienes los inputs (las cajas de texto) tienes que añadir la siguiente línea y eliminar cualquier otra que defina el Content-Type.

Código HTML:
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> 
Esto lo que hace es utilizar UTF-8 (Unicode) para la codificación que es el que utiliza Ajax.

Espero que te funcione. Si no fuera así, me lo dices y buscamos otra solución.

Saludos!
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.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 09:32.