Programación Web y Scripting > PHP
Problema con combobox dependientes
dark_monk9:
Buenas a todos!!!
Tengo el siguiente inconveniente con un par de combobox dependientes, aunque en google aparece mucho con respecto al tema, no he logrado hacer lo que necesito, espero que me puedan colaborar con la siguiente duda:
Tengo un par de combobox que se llaman "select_numero_obilga" y "select_ficha_catastral" respectivamente. En el "select_numero_obilga" cargo el los datos desde una base de datos y tiene una funcion que se invoca desde el evento onchange como se muestra a continuacion:
<select name="select_numero_obilga" id="select_numero_obilga" onchange="seleccion_destino(this,this.form.select_ficha_catastral)">
<option></option>
<?php
$base_path = "../../";
require_once( $base_path . 'configuration.php' );
$datos= new Jconfig();
$db_host= $datos->host;
$db_nombre=$datos->db;
$db_user=$datos->user;
$db_pass=$datos->password;
$conexion= mysql_connect($db_host, $db_user, $db_pass);
mysql_select_db($db_nombre,$conexion);
$consulta = "SELECT numero_obligacion FROM obligacion";
if($resultado= mysql_query($consulta))
while ($query= mysql_fetch_array($resultado)){
?>
<option value ="<?php echo $query['numero_obligacion']; ?>"><?php echo $query['numero_obligacion']; ?></option>
<?php }
mysql_free_result($resultado);
mysql_close();
?>
</select></td>
<select name="select_ficha_catastral" id="select_ficha_catastral">
<option></option>
</select>
Este combobox funciona sin problema, entonces se supone que al elegir una de las opciones que desplega, se debe tomar este dato, para posteriormente realizar una consulta con este dato a la base de datos y mostrar la lista en el combobox llamado "select_ficha_catastral", para esto tengo el siguiente script:
<script type="text/javascript">
var global;
function selectopcion(texto,valor){
this.texto = texto
this.valor = valor
}
var Amazonas=new Array()
var cont=0;
<?php
1 $base_path = "../../";
2 require_once( $base_path . 'configuration.php' );
3 $datos= new Jconfig();
4 $db_host= $datos->host;
5 $db_nombre=$datos->db;
6 $db_user=$datos->user;
7 $db_pass=$datos->password;
8 $conexion= mysql_connect($db_host, $db_user, $db_pass);
9 mysql_select_db($db_nombre,$conexion);
10 $consulta = "SELECT id_referencia FROM bien WHERE numero_obligacion_FK='748303'";
11 if($resultado= mysql_query($consulta))
12 while ($query= mysql_fetch_array($resultado)){
13 echo "Amazonas[cont++]= new selectopcion('".$query['id_referencia']."','".$query['id_referencia']."');n";
14 }
15?>
function seleccion_destino(cual,donde){
if(cual.selectedIndex != 0){//selectIndex es el indice de la opcion por defecto empieza en 1
donde.length=0
cual = eval(cual.value)//value da nombre del objeto en este caso de la del menu lista
for(m=0;m<cual.length;m++){
var nuevaOpcion = new Option(cual[m].texto);
donde.options[m] = nuevaOpcion;
if(cual[m].valor != null){
donde.options[m].value = cual[m].valor
}
else{
donde.options[m].value = cual[m].texto
}
}
}
}
</script>
En la linea 10, que es la consulta, esta esta correcta, pero en vez de hacer la comparacion con el numero '748303', se debe hacer con el valor que se selecciono en el combobox "select_numero_obilga" , esto como se hace??
Y el otro problema que tengo es en la linea 13, ya que se supone que deberia al menos funcionar, pero no me esta mostrando nada en el segundo combobox, tendre algun error??
Muchas gracias por la atencion!! y disculpen lo extenso
talcual:
10 $consulta = "SELECT id_referencia FROM bien WHERE numero_obligacion_FK='748303'";
en ves de colocar el numero que esta en negrilla deberas colocar el valor del combo ya sea pasandolo por la variable que esta en el javascript o por post como prefieras o como lo estes desarrollando , yo te recomedaria que trabajaras estos combos con ajax y te recuerdo estos no se llaman combobox estos son listas desplegables los combo box son de visual basic :lol: jajaja saludos
dark_monk9:
Gracias por la recomendación, pero en el momento, tal y como esta el codigo, en la lista "menu select_ficha_catastral" no se me esta mostrando ningun valor, por lo que no se si la linea 13 echo "Amazonas[cont++]= new selectopcion('".$query['id_referencia']."','".$query['id_referencia']."');n"; tendra algun error, o habra un error en otra parte de este codigo
talcual:
hazlo en ajax te lo repito nuevamente si por alguna razon no tienes el departamento listado como haces te toca modificar todo el codigo trabaja con la base de datos ajax y php y veras que todo sera mas facil saludos
dark_monk9:
Tengo lo siguiente:
----------form_eliminar_bien.php-----------
//Menu Lista 1
<select name="select_numero_obilga" id="select_numero_obilga" onchange="cargarContenido()">
<option></option>
<?php
$base_path = "../../";
require_once( $base_path . 'configuration.php' );
$datos= new Jconfig();
$db_host= $datos->host;
$db_nombre=$datos->db;
$db_user=$datos->user;
$db_pass=$datos->password;
$conexion= mysql_connect($db_host, $db_user, $db_pass);
mysql_select_db($db_nombre,$conexion);
$consulta = "SELECT numero_obligacion FROM obligacion";
if($resultado= mysql_query($consulta))
while ($query= mysql_fetch_array($resultado)){
?>
<option value ="<?php echo $query['numero_obligacion']; ?>"><?php echo $query['numero_obligacion']; ?></option>
<?php }
mysql_free_result($resultado);
mysql_close();
?>
//Menu lista 2
<select name="select_ficha_catastral" id="select_ficha_catastral">
<option></option>
</select>
<script language="javascript">
function nuevoAjax()
{
var xmlhttp=false;
try
{
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e)
{
try
{
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
catch (E)
{
xmlhttp = false;
}
}
if (!xmlhttp && typeof XMLHttpRequest!='undefined')
{
xmlhttp = new XMLHttpRequest();
}
return xmlhttp;
}
function cargarContenido()
{
var t1, contenedor;
//Select donde se cargaran los resultados
contenedor = document.getElementById('select_ficha_catastral');
//Valor seleccionado del Select inicial
t1 = document.getElementById('select_numero_obilga').va lue;
ajax=nuevoAjax();
ajax.open("GET", "previo.php?t1=" + t1.value,true);
ajax.onreadystatechange=function(){
if (ajax.readyState==4)
{
contenedor.innerHTML = ajax.responseText
}
}
ajax.send(null)
}
</script>
---------previo.php--------------
<?php
$previo=$_GET["select_numero_obilga"];
$base_path = "../../";
require_once( $base_path . 'configuration.php' );
$datos= new Jconfig();
$db_host= $datos->host;
$db_nombre=$datos->db;
$db_user=$datos->user;
$db_pass=$datos->password;
$conexion= mysql_connect($db_host, $db_user, $db_pass);
mysql_select_db($db_nombre,$conexion);
$consulta = "SELECT id_referencia FROM bien WHERE numero_obligacion_FK='".$previo"'";
$resultado= mysql_query($consulta);
while ($query= mysql_fetch_array($resultado)){
?>
<option value ="<?php echo $query['id_referencia']; ?>"><?php echo $query['id_referencia']; ?></option>
}
<?
?>
No muestra error alguno, pero tampoco me esta desplegando los respectivos datos en el Menu Lista 2, que error estoy comentiendo??
Gracias a todos!!
Navegación
[#] Página Siguiente
Ir a la versión completa