Ver Mensaje Individual
  #3 (permalink)  
Antiguo 19/11/2010, 15:14
warbandit69
 
Fecha de Ingreso: diciembre-2008
Ubicación: http://www.solucionesrios.tk/
Mensajes: 413
Antigüedad: 16 años
Puntos: 19
Respuesta: Problema con Extjs no funcionan Selects dependientes sacando datos de la B

Luego de varios dias buscando como solventar esto lo puede realizar con el siguiente codigo, espero le sirva a alguien:

Código:
var datos_select = new Ext.data.Store({ 
				autoLoad: true,
				proxy: new Ext.data.HttpProxy({
			    	url:'../JSON/selects_multiples_car.php', 
		     		method: 'POST', 
			    }),
				reader: new Ext.data.JsonReader({
				root: 'data'
      			}, [
		          {name: 'valor'},
        		  {name: 'etiqueta'}
		      	])
			});
			
					
			
			var codigo_pais_fld = new Ext.form.ComboBox({
				mode: 'local', 
				//disabled:true,
				store: datos_select,
				displayField : 'etiqueta',
				valueField : 'valor',
				forceSelection:true,
        		minChars: '1',
				fieldLabel: 'País',
				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:450,
				allowBlank:false,
				selectOnFocus:true
			});	
			
			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_provincia_fld = new Ext.form.ComboBox({
				mode: 'local', 
				store: datos_select,
				disabled:true, 
				displayField : 'etiqueta',
				valueField : 'valor',
				fieldLabel: 'Provincia',
				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:450,
				allowBlank:false,
				selectOnFocus:true
			});
			
			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_municipios_fld = new Ext.form.ComboBox({
				mode: 'local', 
				store: datos_select,
				displayField : 'etiqueta',
				valueField : 'valor',
				fieldLabel: 'Municipio',
				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:450,
				allowBlank:false,
				selectOnFocus:true
			});
			
			codigo_municipios_fld.on('select',function(cmb,record,index){	
				
				codigo_parroquias_fld.enable();			
				//codigo_parroquias_fld.clearValue();		
				datos_select.load({			
				params:{
						id3:record.get('valor'),
					}
				});	
			},this);
			
			var codigo_parroquias_fld = new Ext.form.ComboBox({
				mode: 'local', 
				store: datos_select,
				displayField : 'etiqueta',
				valueField : 'valor',
				fieldLabel: 'Parroquia',
				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:450,
				allowBlank:false,
				selectOnFocus:true
			});
Y este es el codigo en php

Código PHP:
<?php 
require_once('../Connections/obras.php'); 
require_once(
'../funciones/funciones.php'); 

mysql_select_db($database_obras$obras);
$query_busqueda "SELECT DISTINCT * FROM de_paises ORDER BY pais ASC";
$busqueda mysql_query($query_busqueda$obras) or die(mysql_error());
$row_busqueda mysql_fetch_assoc($busqueda);
$totalRows_busqueda mysql_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['codigopais'],
            
"etiqueta"    => $row_busqueda['pais']
        ));
    } while(
$row_busqueda mysql_fetch_assoc($busqueda));

}

if(!empty(
$_POST['id1'])) {
    
    
mysql_select_db($database_obras$obras);
    
$query_busqueda "SELECT DISTINCT * FROM `de_provincias` WHERE `codigopais` LIKE '".$_POST['id1']."'";
    
$busqueda mysql_query($query_busqueda$obras) or die(mysql_error());
    
$row_busqueda mysql_fetch_assoc($busqueda);
    
$totalRows_busqueda mysql_num_rows($busqueda);
    
    do {  
//step 3
        
array_push($data,array(
            
"valor"        => $row_busqueda['codigoprovincia'],
            
"etiqueta"    => $row_busqueda['provincia']
        ));
    } while(
$row_busqueda mysql_fetch_assoc($busqueda));
    
}

if(!empty(
$_POST['id2'])) {
    
    
mysql_select_db($database_obras$obras);
    
$query_busqueda "SELECT DISTINCT * FROM `de_municipios`WHERE `codigoprovincia` LIKE '".$_POST['id2']."'";
    
$busqueda mysql_query($query_busqueda$obras) or die(mysql_error());
    
$row_busqueda mysql_fetch_assoc($busqueda);
    
$totalRows_busqueda mysql_num_rows($busqueda);
    
    do {  
//step 3
        
array_push($data,array(
            
"valor"        => $row_busqueda['codigomunicipio'],
            
"etiqueta"    => $row_busqueda['municipio']
        ));
    } while(
$row_busqueda mysql_fetch_assoc($busqueda));
    
}

if(!empty(
$_POST['id3'])) {
    
    
mysql_select_db($database_obras$obras);
    
$query_busqueda "SELECT * FROM `de_parroquias` WHERE `codigomunicipio` LIKE '".$_POST['id3']."'";
    
$busqueda mysql_query($query_busqueda$obras) or die(mysql_error());
    
$row_busqueda mysql_fetch_assoc($busqueda);
    
$totalRows_busqueda mysql_num_rows($busqueda);
    
    do {  
//step 3
        
array_push($data,array(
            
"valor"        => $row_busqueda['codigoparroquia'],
            
"etiqueta"    => $row_busqueda['parroquia']
        ));
    } while(
$row_busqueda mysql_fetch_assoc($busqueda));
    
}

echo 
json_encode(  //step 4
    
array(
    
"success"    => true,
    
"data"        => $data
));

mysql_free_result($busqueda);
?>
__________________
http://www.solucionesrios.tk/

Visita mi Web!