Foros del Web » Programando para Internet » Javascript »

Mostrar un valor despues de seleccionar dos select dependientes con ajax

Estas en el tema de Mostrar un valor despues de seleccionar dos select dependientes con ajax en el foro de Javascript en Foros del Web. Hola He creado dos select dependientes con Ajax. El primero te pide que selecciones el edificio y una vez que lo eliges te deja seleccionar ...
  #1 (permalink)  
Antiguo 17/01/2013, 13:33
 
Fecha de Ingreso: enero-2013
Ubicación: Distrito Federal
Mensajes: 88
Antigüedad: 11 años, 3 meses
Puntos: 1
Mostrar un valor despues de seleccionar dos select dependientes con ajax

Hola
He creado dos select dependientes con Ajax.
El primero te pide que selecciones el edificio y una vez que lo eliges te deja seleccionar la habitacion que deseas.

Quisiera que una vez que hace las dos selecciones me coloque el precio de la habitacion.

Es la primera vez que uso Ajax y la verdad no se como tomar el ultimo select para hacer mi consulta y mostrar mi precio

Alguna idea???
  #2 (permalink)  
Antiguo 17/01/2013, 13:45
Avatar de ArkangelGammar  
Fecha de Ingreso: enero-2011
Ubicación: <?php $persona->ubicacion('ArkangelGammar'); ?>
Mensajes: 179
Antigüedad: 13 años, 3 meses
Puntos: 19
Respuesta: Mostrar un valor despues de seleccionar dos select dependientes con ajax

Es el mismo principio que utilizas con el primer select.

Lo que haces al detectar el cambio del segundo, realizar una consulta a una pagina por post y colocar el resultado en un div.

Ejemplo:

Código PHP:
function obtenerValorHabitacion(){
    var 
habitacion     document.getElementById('id_habitacion');
    
id_habitacion     motivo.value;
    if (
window.XMLHttpRequest){
                
// IE7+, Firefox, Chrome, Opera, Safari
                
xmlhttp=new XMLHttpRequest();
            }else{
                
// IE6, IE5
                
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
            }
            
xmlhttp.onreadystatechange=function(){
                if (
xmlhttp.readyState==&& xmlhttp.status==200){
                    
document.getElementById("div_donde_se_coloca_el_valor_habitacion").innerHTML    =xmlhttp.responseText;
                }
            }
            
xmlhttp.open("POST","obtenerValorHabitacion.php?hab="+id_habitacion,true);
            
xmlhttp.send();

Y la funcion la llamas con el evento onchange del select.

Espero haber ayudado.

Saludos
__________________
"No entiendes algo al menos que seas capaz de explicarselo a tu abuela.
Cada dia sabemos mas....y entendemos menos...."

A. Einstein - Genio mas alla de la razon.
  #3 (permalink)  
Antiguo 17/01/2013, 14:15
 
Fecha de Ingreso: enero-2013
Ubicación: Distrito Federal
Mensajes: 88
Antigüedad: 11 años, 3 meses
Puntos: 1
Respuesta: Mostrar un valor despues de seleccionar dos select dependientes con ajax

no logre hacerlo, crees que pudieras ayudarme???

Este es mi codigo

select_proceso.php

Esta es la parte donde se imprime mi select de habitaciones

if(validaSelect($selectDestino) && validaOpcion($opcionSeleccionada))
{
$tabla=$listadoSelects[$selectDestino];
include 'includes/conexion.php';
conectar();
$consulta=mysql_query("SELECT idhabitacion, numerohabitacion FROM $tabla WHERE idedificio='$opcionSeleccionada AND activo=1'") or die(mysql_error());
desconectar();

echo "<select name='".$selectDestino."' id='".$selectDestino."' onChange='obtenerTarifa()' >"; Aqui llamo a la funcion
echo "<option value='0'>Selecciona...</option>";
while($registro=mysql_fetch_row($consulta))
{
$registro[1]=htmlentities($registro[1]);
echo "<option value='".$registro[0]."'>".$registro[1]."</option>";
}
echo "</select>";
}
  #4 (permalink)  
Antiguo 17/01/2013, 14:17
 
Fecha de Ingreso: enero-2013
Ubicación: Distrito Federal
Mensajes: 88
Antigüedad: 11 años, 3 meses
Puntos: 1
Respuesta: Mostrar un valor despues de seleccionar dos select dependientes con ajax

En el archivo .js donde tenia mi codigo AJAX que es el que llama al archivo select_proceso.php coloque el codigo que me enviaste

function obtenerTarifa(){
var habitacion = document.getElementById('idhabitacion');
idhabitacion = motivo.value;
if (window.XMLHttpRequest){
// IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}else{
// IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function(){
if (xmlhttp.readyState==4 && xmlhttp.status==200){
document.getElementById("tarifa").innerHTML =xmlhttp.responseText;
}
}
xmlhttp.open("POST","tarifa.php?hab="+idhabitacion ,true);
xmlhttp.send();
}
  #5 (permalink)  
Antiguo 17/01/2013, 14:18
 
Fecha de Ingreso: enero-2013
Ubicación: Distrito Federal
Mensajes: 88
Antigüedad: 11 años, 3 meses
Puntos: 1
Respuesta: Mostrar un valor despues de seleccionar dos select dependientes con ajax

y tarifa.php quedo asi

Código PHP:
Ver original
  1. <?php
  2.  
  3.   include 'includes/conexion.php';
  4.   conectar();
  5.   $consulta=mysql_query("SELECT precio FROM habitaciones") or die(mysql_error());
  6.   desconectar();
  7.  
  8.   $row = mysql_fetch_assoc($consulta);
  9.  
  10.   echo "'".$row."'";
  11. ?>
  #6 (permalink)  
Antiguo 17/01/2013, 14:29
Avatar de ArkangelGammar  
Fecha de Ingreso: enero-2011
Ubicación: <?php $persona->ubicacion('ArkangelGammar'); ?>
Mensajes: 179
Antigüedad: 13 años, 3 meses
Puntos: 19
Respuesta: Mostrar un valor despues de seleccionar dos select dependientes con ajax

el problema esta aca:

Código PHP:
<select name='".$selectDestino."' id='".$selectDestino."' onChange='obtenerTarifa()' 
La funcion javascript necesita saber el id del combobox de las habitaciones.

te sugiero que lo cambies por esto:

Código PHP:
<select name='".$selectDestino."' id='idhabitacion' onChange='obtenerTarifa()' >
//idhabitacion es llamado en el js por el document.getElementById('idHabitacion') 
Espero haber sido de ayuda
Cualqueir cosa avisame.

Saludos
__________________
"No entiendes algo al menos que seas capaz de explicarselo a tu abuela.
Cada dia sabemos mas....y entendemos menos...."

A. Einstein - Genio mas alla de la razon.
  #7 (permalink)  
Antiguo 17/01/2013, 14:46
 
Fecha de Ingreso: enero-2013
Ubicación: Distrito Federal
Mensajes: 88
Antigüedad: 11 años, 3 meses
Puntos: 1
Respuesta: Mostrar un valor despues de seleccionar dos select dependientes con ajax

mira que no me ha funcionado

Quiza el problema es donde coloque la funcion. Esta en mi archivo con todas mis funciones de AJAX, la colocare en mi index mejor o eso no afecta?

o igual sea mi archivo tarifa.php donde hago mi consulta. La cambie así

Código PHP:
Ver original
  1. <?php
  2.  
  3. $idhabitacion = $_POST('hab');
  4.      
  5. include 'includes/conexion.php';
  6. conectar();
  7. $consulta=mysql_query("SELECT precio FROM habitaciones WHERE idhabitacion='".$idhabitacion."'") or die(mysql_error());
  8. desconectar();
  9.      
  10. echo "'".$consulta."'";
  11. ?>

Etiquetas: ajax-php-mysql, 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 16:40.