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

Ajax con PHP

Estas en el tema de Ajax con PHP en el foro de Frameworks JS en Foros del Web. Hola a tod@s, Estoy intentando anidar dos combos con ajax y php con un ejemplo de un curso que estoy realizando. Llega a completar los ...
  #1 (permalink)  
Antiguo 26/01/2011, 03:08
 
Fecha de Ingreso: enero-2011
Mensajes: 4
Antigüedad: 13 años, 3 meses
Puntos: 0
Ajax con PHP

Hola a tod@s,

Estoy intentando anidar dos combos con ajax y php con un ejemplo de un curso que estoy realizando. Llega a completar los dos combos, pero al seleccionar opciones del primero no filtra el segundo, es decir, me lista la tabla completa.

la estructura de la base de datos es

Departamento (1er combo)
------------------

1;Informatica
2;Financiero


Seccion (2º combo)
--------------------
1;Programacion
1;Sistemas
2;Pagos
2;Cobros
2;Nominas

Gracias de antemano por vuestra ayuda.

<script languaje="javascript">

//Cargamos la funcion carga_departamentos() en la etiqueta body
//de la siguiente manera <body onLoad="carga_departamentos()">



function carga_departamentos()
{



//uso de la función ajax Ajax.Request (sirve para hacer una petición ajax)

var param='';
var url='departamentos.php';
var ajaxRequest = new Ajax.Request(
url,
{
method: 'get',
parameters: param,
asynchronous: true,
onComplete: showDpto
});

}

function showDpto(HttpRequest, responseHeader)
{
try{

respuesta=HttpRequest.responseText;
elementos=respuesta.split("<BR>");
if (elementos[0]=='error')
{
error(elementos[1]);
}
else
{
elementos.each( function(elem){
if (elem!='')
{
datos=elem.split(";");
var opt=document.createElement('option');
opt.value=datos[0];
opt.text=datos[1];
document.form1.id_departamento.add(opt);
}

});
carga_secciones();
}
}
catch(e){
alert (e.description);
}
}
function error(descripcion)
{
alert("Se ha producido un error php:\n"+descripcion);
}

function carga_secciones()
{

//Los parámetros los tomo de seccion.php

var param='id_seccion='+$F('id_departamento');
var url='seccion.php';
var ajaxRequest = new Ajax.Request(
url,
{
method: 'get',
parameters: param,
asynchronous: true,
onComplete: showSeccion
});
}

function showSeccion(HttpRequest, responseHeader)
{
document.form1.id_seccion.length=0;

respuesta=HttpRequest.responseText;
elementos=respuesta.split("<BR>");

elementos.each( function(elem){
if (elem!='')
{
datos=elem.split(";");

var opt=document.createElement('option');
opt.value=datos[0];
opt.text=datos[1];
document.form1.id_seccion.add(opt);
}
});
}
</script>
  #2 (permalink)  
Antiguo 26/01/2011, 05:46
Avatar de aniMAYtions  
Fecha de Ingreso: diciembre-2007
Ubicación: Granada
Mensajes: 519
Antigüedad: 16 años, 4 meses
Puntos: 2
Respuesta: Ajax con PHP

Por qué no lo haces con javascript directamente?
a ver, te paso un código
Código PHP:
Ver original
  1. //esta función se crea con la librería xajax
  2.  
  3. .
  4. .
  5. .
  6. <select name='nombreselect' id='nombreselect'  value='' onchange='rellenaelotroCombo(this.value)'>
  7. //ahora van los options de este select primero
  8. </select>
  9. /el segundo select lo creas tal que así
  10. <select name='nombreselect2' id='nombreselect2' value=''></select>
  11. //los options se crearán con javascript cuando se cambie el valor del select inicial
Código Javascript:
Ver original
  1. function rellenaelotroCombo(valor)
  2. {
  3.     document.formulario.nombreselect2.length=0;
  4.     /*document.formulario.nombreselect2.options[0] = new Option("","","defaultSelected","");*/
  5.     var indice=1;
  6.     <?
  7.         $conexion = conectar();
  8.         $sql_valor= "SELECT * from tabla";
  9.         $rs_valor = mysql_query($sql_valor, $conexion);
  10.         if(mysql_num_rows($rs_valor)>0)
  11.         {
  12.             while($row_valor = mysql_fetch_assoc($rs_valor))
  13.             {
  14.    
  15.     ?>
  16.     if(valor=='<?=$row_valor["id"]?>')
  17.     {
  18.     document.formulario.nombreselect2.options[indice] = new Option("<?=utf8_encode($row_valor["nombre"])?>","<?=$row_valor["id"]?>");
  19.     indice++;
  20.     }
  21.     <?
  22.             }
  23.         }
  24.     ?>
  25. };

Espero haberte ayudado.
Un saludo!!
  #3 (permalink)  
Antiguo 26/01/2011, 06:29
 
Fecha de Ingreso: enero-2011
Mensajes: 4
Antigüedad: 13 años, 3 meses
Puntos: 0
Respuesta: Ajax con PHP

Hola Animaytions,

Gracias por tu ayuda. Parece mucho más simple tu propuesta. Pero esto es parte del código de un curso Ajax con PHP que estoy realizando, e intento comprender como implementar ambas tecnologías.

Gracias de nuevo y saludos.

Etiquetas: ajax, 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 11:07.