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

Se puede hacer con AJAX??

Estas en el tema de Se puede hacer con AJAX?? en el foro de Frameworks JS en Foros del Web. Hola... Con AJAX siempre he utilizado la función tìpica de select dependientes, que encontré en este sitio... Ahora lo que me gustarìa saber es como ...

  #1 (permalink)  
Antiguo 24/08/2007, 10:14
Avatar de Carxl
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: Bogotá
Mensajes: 2.993
Antigüedad: 17 años, 8 meses
Puntos: 70
Pregunta Se puede hacer con AJAX??

Hola...

Con AJAX siempre he utilizado la función tìpica de select dependientes, que encontré en este sitio...

Ahora lo que me gustarìa saber es como harìa para cargar 3 input text dependiendo de un select???.

Ósea, me gustarìa saber si al escoger un cliente através de un select, puedo cargar de una vez en 3 input tipo texto, su dirección, teléfono y mail. Se puede hacer??.

Además, si es posible que me asesoraran el como implementarlo?

Gracias de antemano!!!
__________________
Hay 10 tipos de personas, los que entienden binario y los que no. (Anónimo)
www.programandoweb.com
  #2 (permalink)  
Antiguo 24/08/2007, 11:37
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Re: Se puede hacer con AJAX??

Si es posible, y de hecho es mas facil que hacer los selects dependientes, lo puedes hacer con la libreria Prototype muy sencillo:
Código:
Event.observe( 'window', 'load', function() {
      $('id_de_tu_select').onchange = function() {
              var itemSelected = this.options[this.selectedIndex].value;
              var pars = "idcliente=" + escape(itemSelected);
              new Ajax.Request( '/scriptdestino', {
                       method: 'get',
                       parameters: pars,
                       onSuccess: function(transport) {
                               fillDatos( transport.responseText );
                       }
              }
      };
});

function fillDatos( response ) {
      var items = response.split( "||" );
      var direccion = items[0];
      var telefono = items[1];
      var email = items[2];

      $('id_de_tu_txt_direccion' ).value = direccion;
      $('telefono_id').value = telefono;
      $('email_id').value = email;
}
Ahora tu script donde haces la consulta debe de recibir el idcliente y tiene que sacar los datos de esta forma:
Código:
direccion del cliente||telefono del cliente||email del cliente
Pruebalo y comentas.

Saludos.
  #3 (permalink)  
Antiguo 27/08/2007, 20:17
Avatar de Carxl
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: Bogotá
Mensajes: 2.993
Antigüedad: 17 años, 8 meses
Puntos: 70
De acuerdo Re: Se puede hacer con AJAX??

Hola de nuevo GatorV!!!! Tú como siempre ayudàndome

Hasta ahora tuve tiempo para revisar tu respuesta, reviso eso esta noche y mañana comento como me fue vale??

Saludos a todos
__________________
Hay 10 tipos de personas, los que entienden binario y los que no. (Anónimo)
www.programandoweb.com
  #4 (permalink)  
Antiguo 28/08/2007, 13:49
Avatar de Carxl
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: Bogotá
Mensajes: 2.993
Antigüedad: 17 años, 8 meses
Puntos: 70
De acuerdo Re: Se puede hacer con AJAX??

Hola Gator V...

Como podràs observar por la preguntas que te voy a hacer, no he podido comenzar...

Mira a pesar de que me das el còdigo, por cierto de agradezco muchìsimo... No tengo ni las mas remota idea de como implementarlo..., ya descargué la librería "Prototype"...., ya tengo la pàgina que tiene el select que debe cargar los datos, la llamo, formulario.php y ahora??.

Me surgen las siguientes dudas:

Esta parte del còdigo la puse en formulario.php, pero no estoy seguro si va ahì....
Código:
<script language="javascript">
Event.observe( 'window', 'load', function() {
      $('id_de_tu_select').onchange = function() {
              var itemSelected = this.options[this.selectedIndex].value;
              var pars = "idcliente=" + escape(itemSelected);
              new Ajax.Request( '/scriptdestino', {
                       method: 'get',
                       parameters: pars,
                       onSuccess: function(transport) {
                               fillDatos( transport.responseText );
                       }
              }
      };
});

function fillDatos( response ) {
      var items = response.split( "||" );
      var direccion = items[0];
      var telefono = items[1];
      var email = items[2];

      $('id_de_tu_txt_direccion' ).value = direccion;
      $('telefono_id').value = telefono;
      $('email_id').value = email;
}
</script>

<select name="cliente" onchange="">
					<option>Seleccione</option>
				<?php
				do
				{
				?>
					<option value="<?php echo $row[0]?>"><?php echo substr($row[1],0,15)?></option>
				<?php
				}while($row=mysql_fetch_array($result));				
				?>
				</select>
Còmo puedes ver, tengo el select en la misma pàgina, pero no sè ni donde ni como, colocar el evento que carga el ajax....

En tu còdigo me dices que '/scriptdestino', debo crear un nuevo archivo php para que??? para hacer la consulta que debe cargar los datos de los input??. Realmente no entiendo esa parte...

Gracias de antemano...
__________________
Hay 10 tipos de personas, los que entienden binario y los que no. (Anónimo)
www.programandoweb.com
  #5 (permalink)  
Antiguo 28/08/2007, 14:35
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Re: Se puede hacer con AJAX??

Si esta bien pero, si ves en la funcion tienes que cambiar $('id_de_tu_select') por el ID que le hayas dado al select, por lo que veo lo tienes asi:
Código HTML:
<select name="cliente" onchange=""> 
Ponlo asi:
Código HTML:
<select name="cliente" id="cliente"> 
Y entonces cambia la funcion por $('cliente') para que lo reconozca.

Ahora la libreria Prototype.js tienes que agregarla en las cabeceras para que todo funcione y cambiar tambien la funcion fillDatos.

Para tu otra pregunta lo de '/scriptdestino' si tienes que crear otra pagina php que es donde se va a hacer la llamada AJAX, este archivo va a recibir como parametro el id del cliente que se selecciono en el Select y lo recuperas via $_GET['idcliente'] y la salida como bien comentaba arriba debe de ser la cadena con los datos separados:

Código:
direccion del cliente||telefono del cliente||email del cliente
Saludos.
  #6 (permalink)  
Antiguo 28/08/2007, 14:59
Avatar de Carxl
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: Bogotá
Mensajes: 2.993
Antigüedad: 17 años, 8 meses
Puntos: 70
De acuerdo Re: Se puede hacer con AJAX??

Hola de nuevo GatorV....

Te entendì hasta cierta parte , que pena molestar tanto...

Cita:
y cambiar tambien la funcion fillDatos.

Para tu otra pregunta lo de '/scriptdestino' si tienes que crear otra pagina php que es donde se va a hacer la llamada AJAX, este archivo va a recibir como parametro el id del cliente que se selecciono en el Select y lo recuperas via $_GET['idcliente'] y la salida como bien comentaba arriba debe de ser la cadena con los datos separados:

Código:

direccion del cliente||telefono del cliente||email del cliente
Esa parte me hizo falta entenderla jejeje... me hechas otra mano? Cuando dices "otra pagina php que es donde se va a hacer la llamada AJAX", es donde tengo que hacer la consulta para que me arroje el telèfono, mail y direcciòn del cliente??, a eso te refieres??

Mira como llevo hasta ahora todo para que porfa me sigas quiando...

Mi pàgina formulario.php.

Código PHP:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script src="funciones_js/prototype.js" type="text/javascript"></script>
<script language="javascript">
Event.observe( 'window', 'load', function() {
      $('cliente').onchange = function() {
              var itemSelected = this.options[this.selectedIndex].value;
              var pars = "idcliente=" + escape(itemSelected);
              new Ajax.Request( '/scriptdestino', {
                       method: 'get',
                       parameters: pars,
                       onSuccess: function(transport) {
                               fillDatos( transport.responseText );
                       }
              }
      };
});

function fillDatos( response ) {
      var items = response.split( "||" );
      var direccion = items[0];
      var telefono = items[1];
      var email = items[2];

      $('id_de_tu_txt_direccion' ).value = direccion;
      $('telefono_id').value = telefono;
      $('email_id').value = email;
}
</script>

<select name="cliente" id="cliente">
                    <option>Seleccione</option>
                <?php
                
do
                {
                
?>
                    <option value="<?php echo $row[0]?>"><?php echo substr($row[1],0,15)?></option>
                <?php
                
}while($row=mysql_fetch_array($result));                
                
?>
                </select>
Estoy comenzando a crear el otra parte, osea del que hablábamos "scriptdestino".

Hey gracias de antemano!
__________________
Hay 10 tipos de personas, los que entienden binario y los que no. (Anónimo)
www.programandoweb.com
  #7 (permalink)  
Antiguo 28/08/2007, 16:59
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Re: Se puede hacer con AJAX??

Asi es tienes que hacer otro script que es el que te va a arrojar los datos del cliente y cuando te digo que cambies el de fillDatos es porque ahi tienes que poner los ids de los inputs donde se van a llenar los datos.

Saludos.
  #8 (permalink)  
Antiguo 29/08/2007, 07:55
Avatar de Carxl
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: Bogotá
Mensajes: 2.993
Antigüedad: 17 años, 8 meses
Puntos: 70
Exclamación Re: Se puede hacer con AJAX??

Hola de nuevo GatorV...

Mira lo que he hecho hasta ahora y no me funciona...

La página donde esta el select y los input, formulario.php:
Código PHP:
<script src="funciones_js/prototype.js" type="text/javascript"></script>
<script language="javascript">
Event.observe( 'window', 'load', function() 
{
      $('cliente').onchange = function() 
      {
              var itemSelected = this.options[this.selectedIndex].value;
              var pars = "idcliente=" + escape(itemSelected);
              new Ajax.Request( 'select.php',
              {        
                      method: 'get',parameters: pars,onSuccess: function(transport) 
                      {
                        fillDatos( transport.responseText );
                    }
              }
      };
});

function fillDatos( response ) {
      var items = response.split( "||" );
      var direccion = items[0];
      var telefono = items[1];
      var email = items[2];

      $('direccion' ).value = direccion;
      $('telefono').value = telefono;
      $('web').value = email;
}
</script>
.
.
.
.
<body>
<select name="cliente" id="cliente">
                    <option>Seleccione</option>
                <?php
                
do
                {
                
?>
                    <option value="<?php echo $row[0]?>"><?php echo substr($row[1],0,15)?></option>
                <?php
                
}while($row=mysql_fetch_array($result));                
                
?>
                </select>
                <input id="telefono" name="telefono"/>
                <input id="direccion" name="direccion"/>
                <input id="web" name="web"/>
</body>
La del script, select.php:
Código PHP:
require("funciones_php/funciones.php");

$idc=$_GET['idcliente'];

$link=conexiondb();
if(
$link!=1)
{
    
$consulta="select * from ccl_clientes where ccl_cliente_id='$idc'";
    
$re=mysql_query($consulta);
    
$ro=mysql_fetch_array($re);
    echo 
$ro[4].$ro[6].$ro[8];    

Asì como no està.... ni siquiera intenta hacer nada jejejeje , pareciera que ni recibe el GET.

Gracias de antemano...

Saludos!!
__________________
Hay 10 tipos de personas, los que entienden binario y los que no. (Anónimo)
www.programandoweb.com

Última edición por Carxl; 29/08/2007 a las 08:10
  #9 (permalink)  
Antiguo 29/08/2007, 08:34
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Re: Se puede hacer con AJAX??

Tu script cambialo asi:
Código PHP:
require("funciones_php/funciones.php");

$idc=$_GET['idcliente'];

$link=conexiondb();
if(
$link!=1)
{
    
$consulta="select * from ccl_clientes where ccl_cliente_id='$idc'";
    
$re=mysql_query($consulta);
    
$ro=mysql_fetch_array($re);
    echo 
$ro[4]."||".$ro[6]."||".$ro[8];    

Luego para probar que si el request se esta haciendo haz esto:
Código:
<script src="funciones_js/prototype.js" type="text/javascript"></script>
<script language="javascript">
Event.observe( 'window', 'load', function() 
{
      $('cliente').onchange = function() 
      {
              var itemSelected = this.options[this.selectedIndex].value;
              var pars = "idcliente=" + escape(itemSelected);
              alert( pars );
              new Ajax.Request( 'select.php',
              {        
                      method: 'get',parameters: pars,onSuccess: function(transport) 
                      {
                        alert("Ajax Request completed! response: " + transport.responseText);
                        fillDatos( transport.responseText );
                    }
              }
      };
});

function fillDatos( response ) {
      var items = response.split( "||" );
      var direccion = items[0];
      var telefono = items[1];
      var email = items[2];

      $('direccion' ).value = direccion;
      $('telefono').value = telefono;
      $('web').value = email;
}
</script>
.
.
.
.
<body>
<select name="cliente" id="cliente">
                    <option>Seleccione</option>
                <?php
                do
                {
                ?>
                    <option value="<?php echo $row[0]?>"><?php echo substr($row[1],0,15)?></option>
                <?php
                }while($row=mysql_fetch_array($result));                
                ?>
                </select>
                <input id="telefono" name="telefono"/>
                <input id="direccion" name="direccion"/>
                <input id="web" name="web"/>
</body>
Saludos.
  #10 (permalink)  
Antiguo 29/08/2007, 08:49
Avatar de Carxl
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: Bogotá
Mensajes: 2.993
Antigüedad: 17 años, 8 meses
Puntos: 70
Re: Se puede hacer con AJAX??

Hola...

No nada... no manda el alert que pusiste...

Con la librerìa prototype no hace falta crear un nuevo objeto AJAX??, la librerìa lo hace de una vez??. Por que es que en el còdigo para manejar select dependientes que tengo, el autor dice que es obligaciòn colocar esto:

Código:
function nuevoAjax()
{ 
	/* Crea el objeto AJAX. Esta funcion es generica para cualquier utilidad de este tipo, por
	lo que se puede copiar tal como esta aqui */
	var xmlhttp=false; 
	try 
	{ 
		// Creacion del objeto AJAX para navegadores no IE
		xmlhttp=new ActiveXObject("Msxml2.XMLHTTP"); 
	}
	catch(e)
	{ 
		try
		{ 
			// Creacion del objet AJAX para IE 
			xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); 
		} 
		catch(E) { xmlhttp=false; }
	}
	if (!xmlhttp && typeof XMLHttpRequest!='undefined') { xmlhttp=new XMLHttpRequest(); } 

	return xmlhttp; 
}
No harìa falta eso??

Saludos y gracias de nuevo!!
__________________
Hay 10 tipos de personas, los que entienden binario y los que no. (Anónimo)
www.programandoweb.com
  #11 (permalink)  
Antiguo 29/08/2007, 12:07
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Re: Se puede hacer con AJAX??

Lo siento es mi error prueba asi:
Código:
Event.observe( window, 'load', function() 
{
      $('cliente').onchange = function() 
      {
              var itemSelected = this.options[this.selectedIndex].value;
              var pars = "idcliente=" + escape(itemSelected);
              alert( pars );
              new Ajax.Request( 'select.php',
              {        
                      method: 'get',parameters: pars,onSuccess: function(transport) 
                      {
                        alert("Ajax Request completed! response: " + transport.responseText);
                        fillDatos( transport.responseText );
                    }
              }
      };
});
Saludos.
  #12 (permalink)  
Antiguo 29/08/2007, 13:10
Avatar de Carxl
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: Bogotá
Mensajes: 2.993
Antigüedad: 17 años, 8 meses
Puntos: 70
De acuerdo Re: Se puede hacer con AJAX??

Hola de nuevo GatorV....

No nada sigue sin hacer nada...

No sè que mas te pueda pasar o que necesites saber para que me sigas ayudando??

Se me hace raro que ni siquiera entre.... puede ser tal vez la librerìa prototype??

No sè que mas datos darte....

Saludos y gracias nuevamente...
__________________
Hay 10 tipos de personas, los que entienden binario y los que no. (Anónimo)
www.programandoweb.com
  #13 (permalink)  
Antiguo 29/08/2007, 15:30
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Re: Se puede hacer con AJAX??

Probaste lo que te pase? hice un cambio en esta linea, antes estaba asi:
Código:
Event.observe( 'window', 'load', function()
Ahora:
Código:
Event.observe( window, 'load', function()
Saludos.
  #14 (permalink)  
Antiguo 29/08/2007, 19:29
Avatar de Carxl
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: Bogotá
Mensajes: 2.993
Antigüedad: 17 años, 8 meses
Puntos: 70
Exclamación Re: Se puede hacer con AJAX??

Si claro GatorV, claro que lo probé...

Será que estoy haciendo algo mal??, cómo lo harías tú??. Osea cual sería el procedimiento lógico para hacerlo?

SAludos!!!!!
__________________
Hay 10 tipos de personas, los que entienden binario y los que no. (Anónimo)
www.programandoweb.com
  #15 (permalink)  
Antiguo 30/08/2007, 09:18
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Re: Se puede hacer con AJAX??

Acabo de probar el script y si tenia un error le faltaba un ); asi que ya lo corregi:
Código:
<script language="javascript">
Event.observe( window, 'load', function() 
{
      $('cliente').onchange = function() 
      {
              var itemSelected = this.options[this.selectedIndex].value;
              var pars = "idcliente=" + escape(itemSelected);
              alert( pars );
              new Ajax.Request( 'select.php',
              {        
                      method: 'get',
		  parameters: pars,
		  onSuccess: function(transport) 
                      {
                        alert("Ajax Request completed! response: " + transport.responseText);
                        fillDatos( transport.responseText );
                    }
              }
	    );
      };
});

function fillDatos( response ) {
      var items = response.split( "||" );
      var direccion = items[0];
      var telefono = items[1];
      var email = items[2];

      $('direccion' ).value = direccion;
      $('telefono').value = telefono;
      $('web').value = email;
}
</script>
Prueba asi y me dices.

Saludos!
  #16 (permalink)  
Antiguo 30/08/2007, 14:29
 
Fecha de Ingreso: octubre-2006
Ubicación: México D.F
Mensajes: 210
Antigüedad: 17 años, 5 meses
Puntos: 0
Re: Se puede hacer con AJAX??

Y si mejor lo hacen con XML??

Edito: aqui la forma de hacerlo..... http://www.forosdelweb.com/f127/ayuda-recibir-varios-datos-con-ajax-512650/

No lo sé, podría ser más facil de entender....

Un saludo

Última edición por gvargas; 30/08/2007 a las 14:37 Razón: Agregar referencia
  #17 (permalink)  
Antiguo 01/09/2007, 11:03
Avatar de Carxl
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: Bogotá
Mensajes: 2.993
Antigüedad: 17 años, 8 meses
Puntos: 70
Mensaje Re: Se puede hacer con AJAX??

Hola GatorV...

Voy a probar entonces lo que me acabas de pasar y te comento como me fue, me he demorado en contestar por que ando sin conexiòn a internet

Gracias por tu ayuda!!!!


Gvargas, dèjame termino de probar lo que me dice GatorV vale??. Gracias a ti tambièn...

Saludos
__________________
Hay 10 tipos de personas, los que entienden binario y los que no. (Anónimo)
www.programandoweb.com
  #18 (permalink)  
Antiguo 03/09/2007, 11:52
 
Fecha de Ingreso: diciembre-2005
Mensajes: 51
Antigüedad: 18 años, 4 meses
Puntos: 0
De acuerdo Re: Se puede hacer con AJAX??

Hola creo q el error esta en la manera de cargar tu selct con los datos q quires q desplegue es decir la lista de Idcliente q te mostrara y q al hacer clic en alguno de ellos te mostrara los datos correspondientes a ese IDcliente en las cajas de texto correspondientes:

El codigo que muestras es este:
Código PHP:
body>
<select name="cliente" id="cliente">
                    <option>Seleccione</option>
                <?php
                
do
                {
                
?>
                    <option value="<?php echo $row[0]?>"><?php echo substr($row[1],0,15)?></option>
                <?php
                
}while($row=mysql_fetch_array($result));                
                
?>
                </select>
                <input id="telefono" name="telefono"/>
                <input id="direccion" name="direccion"/>
                <input id="web" name="web"/>
</body>
creo q el error se encuentra en la sentencia que le das atu WHILE en donde no dices por ningun lado de donde te traera los datos conque se llenara en combo list y que te serviran para comparar a traves del script ajax

espero esto te ayude
  #19 (permalink)  
Antiguo 03/09/2007, 13:39
Avatar de Carxl
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: Bogotá
Mensajes: 2.993
Antigüedad: 17 años, 8 meses
Puntos: 70
Exclamación Re: Se puede hacer con AJAX??

Hola EfrainSanmiguel...

El do while se carga de una consulta mysql que he hecho previamente, el que no este no significa que no lo haya hecho...

Saludos
__________________
Hay 10 tipos de personas, los que entienden binario y los que no. (Anónimo)
www.programandoweb.com
  #20 (permalink)  
Antiguo 04/09/2007, 06:35
 
Fecha de Ingreso: diciembre-2005
Mensajes: 51
Antigüedad: 18 años, 4 meses
Puntos: 0
De acuerdo Re: Se puede hacer con AJAX??

hola, coloca el codigo de tu consulta para ver q es lo q esta pasando, porque yo he estado probando el codigo q te dio GATORv y trae los datos a las cajas de texto pero no de acuerdo a la seleccion que hagas en tu combo, quizas al ver tu consulta te pueda ayudar en algo ya que yo tambien etsoy trabajndo en los mismo
  #21 (permalink)  
Antiguo 04/09/2007, 08:31
Avatar de Carxl
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: Bogotá
Mensajes: 2.993
Antigüedad: 17 años, 8 meses
Puntos: 70
Re: Se puede hacer con AJAX??

Hola a todos...

Hice los cambios que me diò GatorV... y no quiere!!!. esta vaina ya me està artando .

No sè, les postearè cada cosa que estoy haciendo para ver por que esta vaina no quiere funcionar:

1. La estructura de mi sitio es:

- La carpeta que contiene las funcion prototype: "funciones_js/prototype.js"
- index.php
- formulario.php -> donde esta lo del select
- select.php -> donde se supone que hago la consulta para cagar los input
- La carpeta donde tengo funciones varias de php: "funciones_php"

Esa serìa la estructura de mi sitio.

2. Cuando GatorV me dijo que se hacìa con la librerìa "prototype.js", pues fue lo primero que hice, descargarla, la versiòn: version 1.5.1.1 y coloquè el archivo en la carpeta funciones_js, no le hice ningùn tipo de modificaciòn, tal y como la descarguè la copiè.

3. Las pàginas que tienen que ver con el preceso, son formulario.php y select.php, ninguna mas.

Esta es la pàgina que tiene tiene el select(formulario.php), los input que debo cargar, y dejo la consulta de como cargo el select, :

Código PHP:
<?php
session_start
();
require(
"funciones_php/funciones.php");

$id=$_GET['$id'];

$link=conexiondb();
if(
$link!=1)
{
    
$consulta="select * from ccl_clientes";
    
$result=mysql_query($consulta);
    
$row=mysql_fetch_array($result);
    
$num=mysql_num_rows($result);
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script src="funciones_js/prototype.js" type="text/javascript"></script>
<script language="javascript">

<script language="javascript">
Event.observe( window, 'load', function() 
{
      $('cliente').onchange = function() 
      {
              var itemSelected = this.options[this.selectedIndex].value;
              var pars = "cliente=" + escape(itemSelected);
              alert( pars );
              new Ajax.Request( 'select.php',
              {        
                      method: 'get',
          parameters: pars,
          onSuccess: function(transport) 
                      {
                        alert("Ajax Request completed! response: " + transport.responseText);
                        fillDatos( transport.responseText );
                    }
              }
        );
      };
});

function fillDatos( response ) {
      var items = response.split( "||" );
      var direccion = items[0];
      var telefono = items[1];
      var email = items[2];

      $('direccion').value = direccion;
      $('telefono').value = telefono;
      $('mail').value = email;
}
</script>
</script>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
</head>

<body leftmargin="0" topmargin="0">

<select name="cliente" id="cliente">
<option value="0">Seleccione</option>
<?php
do
{
?>
    <option value="<?php echo $row[0]?>"><?php echo  substr($row[1],0,15)?></option>
<?php
}while($row=mysql_fetch_array($result));                
?>
</select>
<input id="telefono" name="telefono"/>
<input id="direccion" name="direccion"/>
<input id="mail" name="mail"/>
</body>
</html>
__________________
Hay 10 tipos de personas, los que entienden binario y los que no. (Anónimo)
www.programandoweb.com
  #22 (permalink)  
Antiguo 04/09/2007, 08:38
Avatar de Carxl
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: Bogotá
Mensajes: 2.993
Antigüedad: 17 años, 8 meses
Puntos: 70
Re: Se puede hacer con AJAX??

Dejo la otra pàgina(select.php), donde hago la consulta para cargar los input:

Código PHP:
<?php
require("funciones_php/funciones.php");

$idc=$_GET['cliente'];

$link=conexiondb();
if(
$link!=1)
{
    
$consulta="select * from ccl_clientes where ccl_cliente_id='$idc'";
    
$re=mysql_query($consulta);
    
$ro=mysql_fetch_array($re);
    echo 
$ro[4]."||".$ro[6]."||".$ro[8];
}
?>
Esa serìa la pàgina que me cargarìa los input...

No sè q mas necesiten saber para que puedan seguir ayudàndome... pero la verdad es que esto ya me la sacò . Desafortunadamente soy muy nuevo en javascript como para dar sugerencias...

Muchas gracias a todos por sus aportes
__________________
Hay 10 tipos de personas, los que entienden binario y los que no. (Anónimo)
www.programandoweb.com
  #23 (permalink)  
Antiguo 04/09/2007, 08:54
Avatar de MaBoRaK  
Fecha de Ingreso: abril-2003
Ubicación: La Paz - Bolivia
Mensajes: 2.003
Antigüedad: 21 años
Puntos: 35
Re: Se puede hacer con AJAX??

loading.........

GatorV.... que paciencia ejejeje :p
Carxl pon en código la pagina resultante donde tienes el select e inputs SIN CODIGO PHP,
algo que tambien te puede servir es hecharle un ojo a la herramienta FIREBUG de esa forma podras saber que estas enviando con AJAX y que estas recibiendo... si recibes lo que no debes entonces falla tu lado php y si envias lo que no debe entonces falla tu lado cliente, así simplificas el problema... manda a la megde a IE y trabaja con firefox, el como depurar con FIREBUG sobra en google. Suerte.

connection closed.
__________________

Maborak Technologies
  #24 (permalink)  
Antiguo 04/09/2007, 09:37
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Re: Se puede hacer con AJAX??

Bueno en primer lugar veo que la estructura de tu pagina web (formulario.php) esta muy mal tienes dos tags anidados de script e inicias dos veces tu pagina web con <html>

Te recomiendo que limpies primero tu pagina bien, yo probe el codigo que te pase en mi maquina y trabaja bien, asi que probablemente tu estructura este impidiendo que la pagina trabaje de la forma que debe.

Saludos.
  #25 (permalink)  
Antiguo 04/09/2007, 09:58
Avatar de Carxl
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: Bogotá
Mensajes: 2.993
Antigüedad: 17 años, 8 meses
Puntos: 70
De acuerdo Re: Se puede hacer con AJAX??

Hola MaBoRaK..., desde hace rato mandè a volar a IE . Y ya instalè la herramienta que me dices. Gracias!!

Y para GatorV . Muchas pero muchas gracias man!!!!!!!!!

Era eso, tenìa errores de html...

Muchas gracias por tu paciencia, por tu còdigo y por todo man!!!

Como decimos en Colombia... "Eres un bacàn".

Saludos y hasta la pròxima.

PDT: Al fin!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
__________________
Hay 10 tipos de personas, los que entienden binario y los que no. (Anónimo)
www.programandoweb.com
  #26 (permalink)  
Antiguo 04/09/2007, 10:05
 
Fecha de Ingreso: diciembre-2005
Mensajes: 51
Antigüedad: 18 años, 4 meses
Puntos: 0
De acuerdo Re: Se puede hacer con AJAX??

hola he probado el codigo de Gatorv y me he dado cuenta que el metodo get con el cual se llama el valor del combo list en el codigo de tu select.php no lo esta obteniendo y debido a eso tus cajas de texto no se llenan, trata de probar con una variable se session para ver si el metodo get de tu select.php realmente esta obteniendo el valor del combo list, realiza algo asi:
En el SELECT.PHP:

Código PHP:
session_start();

echo 
$_SESSION["x"] ;// con esto verificas si el metodo get te esta obteniendo el valor

require("funciones_php/funciones.php");
$idc=$_GET['cliente'];
$_SESSION["x"] = $idc;

$link=conexiondb();
if(
$link!=1)
{
    
$consulta="select * from ccl_clientes where ccl_cliente_id='$idc'";
    
$re=mysql_query($consulta);
    
$ro=mysql_fetch_array($re);
    echo 
$ro[4]."||".$ro[6]."||".$ro[8];

?> 
en tu pagina principal:
Código:
<?php
session_start();
require("funciones_php/funciones.php");

$id=$_GET['$id'];

$link=conexiondb();
if($link!=1)
{
    $consulta="select * from ccl_clientes";
    $result=mysql_query($consulta);
    $row=mysql_fetch_array($result);
    $num=mysql_num_rows($result);
}
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
</head>

<script src="funciones_js/prototype.js" type="text/javascript"></script>

<script language="javascript">
Event.observe( window, 'load', function() 
{
      $('cliente').onchange = function() 
      {
              var itemSelected = this.options[this.selectedIndex].value;
              var pars = "cliente=" + escape(itemSelected);
              alert( pars );
              new Ajax.Request( 'select.php',
              {        
                      method: 'get',
          parameters: pars,
          onSuccess: function(transport) 
                      {
                        alert("Ajax Request completed! response: " + transport.responseText);
                        fillDatos( transport.responseText );
                    }
              }
        );
      };
});

function fillDatos( response ) {
      var items = response.split( "||" );
      var direccion = items[0];
      var telefono = items[1];
      var email = items[2];

      $('direccion').value = direccion;
      $('telefono').value = telefono;
      $('mail').value = email;
}
</script>

<body leftmargin="0" topmargin="0">

<select name="cliente" id="cliente">
<option value="0">Seleccione</option>
<?php
do
{
?>
    <option value="<?php echo $row[0]?>"><?php echo  substr($row[1],0,15)?></option>
<?php
}while($row=mysql_fetch_array($result));                
?>
</select>
<input id="telefono" name="telefono"/>
<input id="direccion" name="direccion"/>
<input id="mail" name="mail"/>
</body>
</html>
prueba con eso man
  #27 (permalink)  
Antiguo 04/09/2007, 10:11
Avatar de Carxl
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: Bogotá
Mensajes: 2.993
Antigüedad: 17 años, 8 meses
Puntos: 70
De acuerdo Re: Se puede hacer con AJAX??

Hola EfrainSanmiguel!!

Mira un mensaje anterior al tuyo!!!:arrib a:

Muchas gracias de todas formas
__________________
Hay 10 tipos de personas, los que entienden binario y los que no. (Anónimo)
www.programandoweb.com
  #28 (permalink)  
Antiguo 04/09/2007, 12:09
 
Fecha de Ingreso: diciembre-2005
Mensajes: 51
Antigüedad: 18 años, 4 meses
Puntos: 0
Pregunta Re: Se puede hacer con AJAX??

Man disculpa no entendi nada de lo q dices, yo uso firefox por que con su consola de error puedo ver las fallas en mi codigo, pero al igual que tu tengo el codigo perfect y no me funcioana el ajax no trae nada , dime como hoceste para soluconarlo man

gracias de ante mano
  #29 (permalink)  
Antiguo 04/09/2007, 13:10
Avatar de Carxl
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: Bogotá
Mensajes: 2.993
Antigüedad: 17 años, 8 meses
Puntos: 70
De acuerdo Re: Se puede hacer con AJAX??

Hola EfrainSanmiguel...

Pues mira, el còdigo que està arriba està perfecto y funciona, no me funcionaba por que estaba mal era el html, osea el còdigo html tenìa unos errores garrafales, tal vez tambièn te pueda estar molestanto eso..., yo revisè el còdigo html y me saliò!!

Saludos
__________________
Hay 10 tipos de personas, los que entienden binario y los que no. (Anónimo)
www.programandoweb.com
  #30 (permalink)  
Antiguo 04/09/2007, 14:09
 
Fecha de Ingreso: diciembre-2005
Mensajes: 51
Antigüedad: 18 años, 4 meses
Puntos: 0
Pregunta Re: Se puede hacer con AJAX??

saludos man, errores como cuales tuviste en tu html, porque yo revise el mio y esta perfect, de hecho tambien analice el php para vers i teni errores, tengo instalado en Firebug para ver mis errores en el Firefox y no logro encontrar el error, tambie probe con tu codigo y nada , y reviso con el firebug el metodo get y si esta obteniendo el valor del codigo del combo q deseo pero en el area del response solo me envia este simbolo: ||

yo he hecho esto sin ajax y me funciona bien pero es muy lento y me aconsejaron que lo hiciera con ajax porque iba mas rapido pero ya no veo cual pueda ser el error man

si me muestras tu codigo hatml que esta perfect seria de un agran ayuda man o me dijeras cuales fueron tus errores en el html

agradecido de ante mano
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

SíEste tema le ha gustado a 2 personas




La zona horaria es GMT -6. Ahora son las 05:12.