我在执行这些组合时遇到问题,组合正常工作,但是当你开始选择每个项目时,这些值只显示在第一个组合中,并希望它显示它所属的位置。这是代码: 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);
?>
链接combo.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);
对不起我的英文
答案 0 :(得分:0)
好吧,经过研究和做出必要的修改,我得到了解决方案,问题出在 linked-cmb.js 文件中,我分享代码来帮助某人:
Ext.BLANK_IMAGE_URL = '../../ext-3.4.0/resources/images/default/s.gif';
Ext.ns("com.quizzpot.tutorial");
com.quizzpot.tutorial.LinkedComboBoxTutorial = {
getStore: function () {
var store = new Ext.data.JsonStore({
autoLoad: true,
url: 'data_combo.php',
method: 'POST',
root: 'data',
fields: ['valor', 'etiqueta']
});
return store;
},
init: function () {
//code here
this.datos_select = this.getStore();
this.datos_select1 = this.getStore();
this.datos_select2 = this.getStore();
this.datos_select3 = this.getStore();
var codigo_pais_fld = new Ext.form.ComboBox({
mode: 'local',
//disabled:true,
store: this.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 Segmento...',
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: this.datos_select1,
disabled: true,
displayField: 'etiqueta',
valueField: 'valor',
fieldLabel: 'Servicio',
typeAhead: true,
hiddenName: 'codigo_provincia_fld',
forceSelection: true,
minChars: '1',
triggerAction: 'all',
emptyText: 'Seleccione Servicio...',
selectOnFocus: true,
forceSelection: false,
labelStyle: 'font-weight:bold;',
id: 'codprovincia',
name: 'codprovincia',
editable: true,
autoLoad: true,
width: 200,
allowBlank: false,
selectOnFocus: true
});
codigo_pais_fld.on('select', function (cmb, record, index) {
codigo_provincia_fld.enable();
codigo_provincia_fld.clearValue();
codigo_municipios_fld.clearValue();
codigo_parroquias_fld.clearValue();
this.datos_select1.load({
params: {
id1: record.get('valor')
}
});
}, this);
var codigo_municipios_fld = new Ext.form.ComboBox({
mode: 'local',
store: this.datos_select2,
displayField: 'etiqueta',
valueField: 'valor',
fieldLabel: 'Aplicativo',
disabled: 'true',
forceSelection: true,
minChars: '1',
typeAhead: true,
hiddenName: 'codigo_municipios_fld',
triggerAction: 'all',
labelStyle: 'font-weight:bold;',
emptyText: 'Seleccione Aplicativo...',
selectOnFocus: true,
forceSelection: false,
id: 'codmunicipio',
name: 'codmunicipio',
editable: true,
autoLoad: true,
width: 200,
allowBlank: false,
selectOnFocus: true
});
codigo_provincia_fld.on('select', function (cmb, record, index) {
codigo_municipios_fld.enable();
codigo_municipios_fld.clearValue();
this.datos_select2.load({
params: {
id2: record.get('valor')
}
});
}, this);
var codigo_parroquias_fld = new Ext.form.ComboBox({
mode: 'local',
store: this.datos_select3,
displayField: 'etiqueta',
valueField: 'valor',
fieldLabel: 'Requerimiento',
forceSelection: true,
minChars: '1',
typeAhead: true,
hiddenName: 'codigo_parroquias_fld',
labelStyle: 'font-weight:bold;',
triggerAction: 'all',
emptyText: 'Seleccione Requerimiento...',
selectOnFocus: true,
forceSelection: false,
disabled: 'true',
id: 'codparroquia',
name: 'codparroquia',
editable: true,
autoLoad: true,
width: 300,
allowBlank: false,
selectOnFocus: true
});
codigo_municipios_fld.on('select', function (cmb, record, index) {
codigo_parroquias_fld.enable();
codigo_parroquias_fld.clearValue();
this.datos_select3.load({
params: {
id3: record.get('valor')
}
});
}, this);
this.window = new Ext.Window({
title: 'ComboBox',
layout: 'form',
width: 500,
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);