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

Cargar 7 <Selects> usando PHP y AJAX

Estas en el tema de Cargar 7 <Selects> usando PHP y AJAX en el foro de Frameworks JS en Foros del Web. Buenas, me han aconsejado q para agilizar un poko el tiempo de carga de una pagina web podria usar ajax.. me leido unos tutoriales.. pero ...
  #1 (permalink)  
Antiguo 23/03/2006, 06:56
 
Fecha de Ingreso: enero-2005
Ubicación: Barcelona
Mensajes: 1.473
Antigüedad: 19 años, 3 meses
Puntos: 10
Cargar SELECT en el evento ONCLICK

Buenas,
me han aconsejado q para agilizar un poko el tiempo de carga de una pagina web podria usar ajax.. me leido unos tutoriales.. pero aun no me queda muy claro.

Si tengo el siguiente codigo:
Código HTML:
<form name="formalta" action="index.php?fuseaction=update" method="POST">
<table width="100%" align="center" cellpadding="0" cellspacing="0" class="cuadre">
<tr>
<td width="50%" valign="top">
<table width="100%" align="center" cellspacing="2" cellpadding="0" border="0" >
<tr>      	
	<td colspan="2">&nbsp;</td>
</tr>
<tr>
	<td>&nbsp;<strong>Num. Maquina</strong></td>
	<td align="left"><input align="left" size="20"type="text"name="num_maq" value="<? echo $row_edit[num_maq]?>"></td>
</tr>
<tr>
	<td>&nbsp;<strong>Tipos de Maquina</strong></td>
	<td align="left">
		<select name="tipus_maq" class="combo">
		<?PHP
		//consulta de dades per crear el COMBOBOX
		$result = mysql_query("SELECT id_tipus_maquina,tipus_maquina FROM tipus_maquina 
							   ORDER BY tipus_maquina");
		//mostrem els resultats
		while ($row=mysql_fetch_array($result))
		{
			if ($row_edit[tipus_maq]==$row[id_tipus_maquina]){
			echo ("<OPTION VALUE=".$row[id_tipus_maquina]." SELECTED>".$row[tipus_maquina]."\n");
			}else{
			
			echo ("<OPTION VALUE=".$row[id_tipus_maquina].">".$row[tipus_maquina]."\n");
				
			}
		}	
		mysql_free_result();
		?>	
		</select>
	</td>
</tr>
...
si quiesiera cargar esa consulta solo cuando el usuario clickara encima del select... encaso de q no lo hiciera no mostrar nada en ese combo... asi podria agilizar el proceso de carga de la pagina.
como seria?
hay algun sitio donde pueda encontrar algo semejante y claro?

gracias de antemano,

Saludos
__________________
"Cada hombre es el hijo de su propio trabajo"
Miguel de Cervantes Saavedra
"La experiencia es algo que no consigues hasta justo depués de necesitarla"
Laurence Olivier

Última edición por sergi_climent; 04/04/2006 a las 10:46
  #2 (permalink)  
Antiguo 23/03/2006, 10:51
Avatar de Nefertiter  
Fecha de Ingreso: enero-2003
Ubicación: Rosario
Mensajes: 1.316
Antigüedad: 21 años, 3 meses
Puntos: 9
lo q mejor q te puedo aconsejar es q leas los otros post de este foro.
  #3 (permalink)  
Antiguo 30/03/2006, 04:31
 
Fecha de Ingreso: abril-2004
Mensajes: 9
Antigüedad: 20 años
Puntos: 0
Hola mira esta web haber si te sirve, yo creo que es mas o menos lo ke buscas.

obispot.com/ejemplos/ajax-json/

Un Saludo

Pumu.
  #4 (permalink)  
Antiguo 05/04/2006, 00:34
 
Fecha de Ingreso: enero-2005
Ubicación: Barcelona
Mensajes: 1.473
Antigüedad: 19 años, 3 meses
Puntos: 10
Hola,
gracias por el ejemplo! es bastante claro!
pero no me hace falta q sean selects dependientes!

Alguien tiene algun ejemplo de como cargar una consulta en el evento ONCLICK?????????

gracias de antemano,
saludos
__________________
"Cada hombre es el hijo de su propio trabajo"
Miguel de Cervantes Saavedra
"La experiencia es algo que no consigues hasta justo depués de necesitarla"
Laurence Olivier
  #5 (permalink)  
Antiguo 05/04/2006, 04:44
 
Fecha de Ingreso: enero-2005
Ubicación: Barcelona
Mensajes: 1.473
Antigüedad: 19 años, 3 meses
Puntos: 10
De acuerdo Ya lo he solucionado...

Hola, ya he conseguido hacer lo q queria...
lo posteo aqui por si a alguien le sirve de algo
estoy abierto a cualquier opinion, ya sea para bien o para mal.
pagina donde hay los combos:
Código HTML:
<script language="Javascript" src="../js/consultes.js"></script>
<table width="100%" align="center" cellspacing="2" cellpadding="0" border="0" >
<tr>		
	<td>&nbsp;<strong>Tipos de Maquina</strong></td>
	<td align="left" id="1">
<select id="tipo_maquina" name="tipo_maquina" class="combo" onFocus="cargaContenido('tipo_maquina','1');">
	<option id="valor_defecto" value="0">Selecciona...</option>
</select>
	</td>
</tr>
<tr>		
	<td>&nbsp;<strong>Seccion</strong></td>
	<td align="left" id="2">
	<select id="id_seccio" name="id_seccio" class="combo" onFocus="cargaContenido('id_seccio','2');" >
		<option id="valor_defecto" value="0">Selecciona Seccion...</option>
	</select>
	</td>					
</tr>
...
el archivo JS:
Código:
function nuevoAjax()
{ 
	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; 
}

function cargaContenido(consulta,fila)
{
ajax=nuevoAjax();
ajax.open("GET", "consultes.php?consulta="+consulta, true);
ajax.onreadystatechange=function() 
{ 
	if (ajax.readyState==4)
	{ 
		document.getElementById(+fila).innerHTML=ajax.responseText;
	} 
}
ajax.send(null);
}
mi pagina de consultas:
Código PHP:
$host "";
$usr "";
$pwd "";
$bdatos "";
$kon mysql_connect ($host$usr$pwd) or die ("Error de Conexion");
mysql_select_db ($bdatos$kon) or ("Error al conectar a la bdatos");
$consulta $_GET["consulta"];

switch (
$consulta) {
    case 
"tipo_maquina":
        
//Select per les Seccions
        
$busqueda="select";
        
$sql mysql_query($busqueda$kon) or die("Error de busqueda");
        
// Comienzo a imprimir el select
        
echo "<select class='combo' id='tipo_maquina' name='tipo_maquina'>";
        while(
$reg=mysql_fetch_row($sql))
        {
            
// Paso a HTML acentors y ñ para su correcta visualizacion
            
$reg[1]=htmlentities($reg[1]);
            
// Imprimo las opciones del select                    
            
echo "<option value='".$reg[0]."'>".$reg[1]."</option>";
        }            
        echo 
"</select>";
    break;    
    case 
"id_seccio":
        
//Select per les Seccions
        
$busqueda="select";
        
$sql mysql_query($busqueda$kon) or die("Error de busqueda");
        
// Comienzo a imprimir el select
        
echo "<select class='combo' id='id_seccio' name='id_seccio'>";
        while(
$reg=mysql_fetch_row($sql))
        {
            
// Paso a HTML acentors y ñ para su correcta visualizacion
            
$reg[1]=htmlentities($reg[1]);
            
// Imprimo las opciones del select
            
echo "<option value='".$reg[0]."'>".$reg[1]."</option>";
        }            
        echo 
"</select>";
    break; 
espero q a alguien le sirva.. a mi me ha ido muy bien para agilizar la carga de formularios con muchos combos y muchas consultas de peso...

Saludos
__________________
"Cada hombre es el hijo de su propio trabajo"
Miguel de Cervantes Saavedra
"La experiencia es algo que no consigues hasta justo depués de necesitarla"
Laurence Olivier
  #6 (permalink)  
Antiguo 12/04/2006, 11:14
 
Fecha de Ingreso: agosto-2004
Mensajes: 83
Antigüedad: 19 años, 8 meses
Puntos: 0
Hola,

estoy utilizando este código, y me funciona bien en el caso que has puesto en el ejemplo, pero tengo un problema, estoy recorriendo un array y en cada caso llamo a la función 'cargaContenido', y funciona sólo en algún select.
Me explico mejor: recorro un array y para cada valor del array debo rellenar un combo, llamo a la función 'cargaContenido'. Pero sólo me rellena algún combo no todos.

He comprobado una cosa y es extraña, si pongo un alert dentro de la función cargaContenido, si me funciona es como si necesitara un tiempo para cada carga de los select.

Espero haberme explicado.
Gracias.
  #7 (permalink)  
Antiguo 27/06/2006, 07:08
 
Fecha de Ingreso: noviembre-2004
Mensajes: 35
Antigüedad: 19 años, 5 meses
Puntos: 1
Select

Este codigo me sirve para cargar 3 select dependiente uno del otro?
  #8 (permalink)  
Antiguo 27/06/2006, 08:15
 
Fecha de Ingreso: enero-2005
Ubicación: Barcelona
Mensajes: 1.473
Antigüedad: 19 años, 3 meses
Puntos: 10
Hola,
dgcc a mi no me ha pasado eso... podrias parsear tu codigo a ver si hay algo q podamos hacer....

jose2003 este codigo no te sirve para cargar 3 selects dependientes... lo q hace es cargar 7 selects independientes, es decir, q al clickar encima de un select te carga los datos dese mismo select. Asi conseguimos rapidez porque no lo carga todo al principio y solo carga los q el usuario quiere!

Saludos
__________________
"Cada hombre es el hijo de su propio trabajo"
Miguel de Cervantes Saavedra
"La experiencia es algo que no consigues hasta justo depués de necesitarla"
Laurence Olivier
  #9 (permalink)  
Antiguo 15/10/2007, 04:15
 
Fecha de Ingreso: octubre-2007
Mensajes: 18
Antigüedad: 16 años, 6 meses
Puntos: 0
Re: Cargar 7 <Selects> usando PHP y AJAX

hola mira lo que quiero hacer con este codigo es cargar varios select al iniciar la
aplicacion (ya que al hacerlo al unblur como funciona este codigo hay que
presionar el select 2 veces y a mi profesor que es el usuario no les gusto)
tengo un problema ya que al implementar el codigo fuente
para que se carge al inicio solo
me carga un select no se si tu me puedas ayudar o tienes otro codigo
que haga lo que necesesito desde ya gracias
  #10 (permalink)  
Antiguo 17/10/2007, 01:13
Avatar de adexedl  
Fecha de Ingreso: julio-2005
Mensajes: 326
Antigüedad: 18 años, 9 meses
Puntos: 2
Re: Cargar 7 <Selects> usando PHP y AJAX

Hola amigos, he posteado este mensaje en un post nuevo pero veo que aqui ya se ha solucionado mi problema, me podrian orientar un poco como realizar esto.

Tengo en la base de datos creada una tabla que se llama grancanaria y otra Tenerife, dentro de cada una hay dos campos, uno llamado id y otro oficina. La idea que tengo es de hacer dos combobox uno encima y otro debajo y que por ejemplo cuando en el de arriba seleccione grancanaria, me salga en el de abajo sus respectivas oficinas y cuando seleccione Tenerife lo mismo. Me han comentado en otro foro que lo adecuado para realizar esta tarea es Ajax, partiendo de que es un lenguaje que desconozco alguien me prodría orientar como realizar esto.

Un saludo a todos y gracias de antemano
__________________
Diseño Web Canarias
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:55.