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.js
Ext.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.