Problema con Combos Dependientes
Estimados,
actualmente estoy usando un combo dependiente que encontre navegando, y sucede que el load de los items se cargan en el mismo combo, estuve modificando el codigo pero no logro ordenarlo.
este es el codigo:
data_combo.php
actualmente estoy usando un combo dependiente que encontre navegando, y sucede que el load de los items se cargan en el mismo combo, estuve modificando el codigo pero no logro ordenarlo.
este es el codigo:
data_combo.php
<?php
header('Content-Type: text/html; charset=UTF-8');
include 'cnx_php.php';
mssql_select_db($database_obras, $link);
$query_busqueda = "SELECT (CODIGO)CODIGO_SEGMENTO,SEGMENTO FROM SEGMENTOS ORDER BY CODIGO ASC";
$busqueda = mssql_query($query_busqueda, $link) or die(mssql_error());
$row_busqueda = mssql_fetch_assoc($busqueda);
$totalRows_busqueda = mssql_num_rows($busqueda);
$data = array();
if((empty($_POST['id1'])) and (empty($_POST['id2'])) and (empty($_POST['id3'])) and (empty($_POST['id4'])) and (empty($_POST['id5']))) {
$id = -1;
do { //step 3
array_push($data,array(
"valor" => $row_busqueda['CODIGO_SEGMENTO'],
"etiqueta" => $row_busqueda['SEGMENTO']
));
} while($row_busqueda = mssql_fetch_assoc($busqueda));
}
if(!empty($_POST['id1'])) {
mssql_select_db($database_obras, $link);
$query_busqueda = "SELECT DISTINCT(CODIGO)CODIGO_SERVICIO,SERVICIO FROM SERVICIO WHERE CODIGO_SEGMENTO = '".$_POST['id1']."'";
$busqueda = mssql_query($query_busqueda, $link) or die(mssql_error());
$row_busqueda = mssql_fetch_assoc($busqueda);
$totalRows_busqueda = mssql_num_rows($busqueda);
do { //step 3
array_push($data,array(
"valor" => $row_busqueda['CODIGO_SERVICIO'],
"etiqueta" => $row_busqueda['SERVICIO']
));
} while($row_busqueda = mssql_fetch_assoc($busqueda));
}
if(!empty($_POST['id2'])) {
mssql_select_db($database_obras, $link);
$query_busqueda = "SELECT DISTINCT * FROM `de_municipios`WHERE `CODIGO_SERVICIO` LIKE '".$_POST['id2']."'";
$busqueda = mssql_query($query_busqueda, $link) or die(mssql_error());
$row_busqueda = mssql_fetch_assoc($busqueda);
$totalRows_busqueda = mssql_num_rows($busqueda);
do { //step 3
array_push($data,array(
"valor" => $row_busqueda['codigomunicipio'],
"etiqueta" => $row_busqueda['municipio']
));
} while($row_busqueda = mssql_fetch_assoc($busqueda));
}
if(!empty($_POST['id3'])) {
mssql_select_db($database_obras, $link);
$query_busqueda = "SELECT * FROM `de_parroquias` WHERE `codigomunicipio` LIKE '".$_POST['id3']."'";
$busqueda = mssql_query($query_busqueda, $link) or die(mssql_error());
$row_busqueda = mssql_fetch_assoc($busqueda);
$totalRows_busqueda = mssql_num_rows($busqueda);
do { //step 3
array_push($data,array(
"valor" => $row_busqueda['codigoparroquia'],
"etiqueta" => $row_busqueda['parroquia']
));
} while($row_busqueda = mssql_fetch_assoc($busqueda));
}
echo json_encode( //step 4
array(
"success" => true,
"data" => $data
));
mssql_free_result($busqueda);
?>linked-cmb.jsExt.ns("com.quizzpot.tutorial");
com.quizzpot.tutorial.LinkedComboBoxTutorial = {
init: function () {
//code here
var datos_select = new Ext.data.Store({
autoLoad: true,
proxy: new Ext.data.HttpProxy({
url: 'data_combo.php',
method: 'POST'
}),
reader: new Ext.data.JsonReader({
root: 'data'
},[
{name: 'valor'},
{name: 'etiqueta'}
])
});
var codigo_pais_fld = new Ext.form.ComboBox({
mode: 'local',
store: datos_select,
displayField: 'etiqueta',
valueField: 'valor',
forceSelection: true,
minChars: '1',
fieldLabel: 'SEGMENTO',
labelStyle: 'font-weight:bold;',
typeAhead: true,
hiddenName: 'codigo_pais_fld',
triggerAction: 'all',
emptyText: 'Seleccione País de la Obra...',
selectOnFocus: true,
forceSelection: false,
id: 'codpais',
name: 'codpais',
editable: true,
autoLoad: true,
width: 200,
allowBlank: false,
selectOnFocus: true
});
var codigo_provincia_fld = new Ext.form.ComboBox({
mode: 'local',
store: datos_select,
disabled: true,
displayField: 'etiqueta',
valueField: 'valor',
fieldLabel: 'SERVICIO',
typeAhead: true,
hiddenName: 'codigo_provincia_fld',
forceSelection: true,
minChars: '1',
triggerAction: 'all',
emptyText: 'Seleccione Provincia...',
selectOnFocus: true,
forceSelection: false,
labelStyle: 'font-weight:bold;',
id: 'codprovincia',
name: 'codprovincia',
editable: true,
autoLoad: true,
width: 200,
allowBlank: false,
selectOnFocus: true
});
//combo 1
codigo_pais_fld.on('select', function (cmb, record, index) {
codigo_provincia_fld.enable();
codigo_provincia_fld.clearValue();
datos_select.load({
params: {
id1: record.get('valor')
}
});
}, this);
var codigo_municipios_fld = new Ext.form.ComboBox({
mode: 'local',
store: datos_select,
displayField: 'etiqueta',
valueField: 'valor',
fieldLabel: 'PROVEEDORES',
disabled: 'true',
forceSelection: true,
minChars: '1',
typeAhead: true,
hiddenName: 'codigo_municipios_fld',
triggerAction: 'all',
labelStyle: 'font-weight:bold;',
emptyText: 'Seleccione Municipio...',
selectOnFocus: true,
forceSelection: false,
id: 'codmunicipio',
name: 'codmunicipio',
editable: true,
autoLoad: true,
width: 200,
allowBlank: false,
selectOnFocus: true
});
//combo 2
codigo_provincia_fld.on('select', function (cmb, record, index) {
codigo_municipios_fld.enable();
codigo_municipios_fld.clearValue();
datos_select.load({
params: {
id2: record.get('valor')
}
});
}, this);
var codigo_parroquias_fld = new Ext.form.ComboBox({
mode: 'local',
store: datos_select,
displayField: 'etiqueta',
valueField: 'valor',
fieldLabel: 'APLICATIVO',
forceSelection: true,
minChars: '1',
typeAhead: true,
hiddenName: 'codigo_parroquias_fld',
labelStyle: 'font-weight:bold;',
triggerAction: 'all',
emptyText: 'Seleccione Parroquia...',
selectOnFocus: true,
forceSelection: false,
disabled: 'true',
id: 'codparroquia',
name: 'codparroquia',
editable: true,
autoLoad: true,
width: 200,
allowBlank: false,
selectOnFocus: true
});
//combo 3
codigo_municipios_fld.on('select', function (cmb, record, index) {
codigo_parroquias_fld.enable();
codigo_parroquias_fld.clearValue(); //MODIFICADO
datos_select.load({
params: {
id3: record.get('valor')
}
});
}, this);
this.window = new Ext.Window({
title: 'ComboBox',
layout: 'form',
width: 400,
height: 250,
bodyStyle: 'padding:5px;background-color:#fff',
items: [codigo_pais_fld, codigo_provincia_fld, codigo_municipios_fld, codigo_parroquias_fld]
});
this.window.show();
}
}
Ext.onReady(com.quizzpot.tutorial.LinkedComboBoxTutorial.init, com.quizzpot.tutorial.LinkedComboBoxTutorial);agradezco mucho su ayuda.... :)¿Conoces a alguien que pueda responder esta pregunta? Comparte el link en Twitter o Facebook
Es necesario registrarse para poder participar en el foro! Si ya tienes una cuenta puedes entrar y comentar en este foro.
