MARCA SERIAL
Teclado IBM (LISTADO DE SERIALES IBM)
Este genera el select (el parametro cambia segun el tipo de periferico)
Código PHP:
<?php generaSelect("tcl"); ?>
Código PHP:
<?php
function generaSelect($t_parte)
{
$tp="";
$tpr="";
/*include 'conexion.php';*/
require_once ('Connections/Invent_Gme.php');
//conectar();
$tp=$t_parte;
//echo $tp;
if ($tp=="tcl"){
$tpr='1';
$idSelect="select1";
}
if ($tp=="rtn"){
$tpr='2';
$idSelect="select3";
}
if ($tp=='mnt'){
$tpr='3';
$idSelect="select5";
}
if ($tp=='rgl'){
$tpr='4';
$idSelect="select7";
}
if ($tp=='hdd'){
$tpr='5';
$idSelect="select9";
}
if ($tp=='cdr'){
$tpr='6';
$idSelect="select11";
}
if ($tp=='tgm'){
$tpr='7';
$idSelect="select13";
}
if ($tp=='tgr'){
$tpr='8';
$idSelect="select15";
}
if ($tp=='mrm'){
$tpr='9';
$idSelect="select17";
}
$consulta=mysql_query("SELECT DISTINCT (BMC_CODIGO) AS id, BMC_DESCRIPCION AS opcion FROM BAS_MARCA, mae_parte_equipo WHERE bmc_codigo = dtm_marca AND DTM_COD_PERIFERICO=$tpr AND DTM_DEFECTUOSO='0' and dtm_reparacion=0 and dtm_cod_equipo is null ORDER BY 2");
//desconectar();
// Voy imprimiendo el primer select compuesto por los paises
echo "<select name=$idSelect id=$idSelect onChange='cargaContenido(this.id, $tpr)'>";
echo "<option value='0'>Elige</option>";
while($registro=mysql_fetch_row($consulta))
{
echo "<option value='".$registro[0]."'>".$registro[1]."</option>";
}
echo "</select>";
}
?>
Lo que sigue codigo es AJAX que tambien saque de algun foro.!"
Código:
El que sigue es la Pag. php que genera lo select dependientes.function nuevoAjax() { /* Crea el objeto AJAX. Esta funcion es generica para cualquier utilidad de este tipo, por lo que se puede copiar tal como esta aqui */ var xmlhttp=false; try { // Creacion del objeto AJAX para navegadores no IE xmlhttp=new ActiveXObject("Msxml2.XMLHTTP"); } catch(e) { try { // Creacion del objet AJAX para IE xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); } catch(E) { if (!xmlhttp && typeof XMLHttpRequest!='undefined') xmlhttp=new XMLHttpRequest(); } } return xmlhttp; } // Declaro los selects que componen el documento HTML. Su atributo ID debe figurar aqui. var listadoSelects=new Array(); listadoSelects[0]="select1"; listadoSelects[1]="select2"; listadoSelects[2]="select3"; listadoSelects[3]="select4"; listadoSelects[4]="select5"; listadoSelects[5]="select6"; listadoSelects[6]="select7"; listadoSelects[7]="select8"; listadoSelects[8]="select9"; listadoSelects[9]="select10"; listadoSelects[10]="select11"; listadoSelects[11]="select12"; listadoSelects[12]="select13"; listadoSelects[13]="select14"; listadoSelects[14]="select15"; listadoSelects[15]="select16"; listadoSelects[16]="select17"; listadoSelects[17]="select18"; function buscarEnArray(array, dato) { // Retorna el indice de la posicion donde se encuentra el elemento en el array o null si no se encuentra var x=0; while(array[x]) { if(array[x]==dato) return x; x++; } return null; } function crearXMLHttpRequest() { var xmlHttp=null; if (window.ActiveXObject) xmlHttp = new ActiveXObject("Microsoft.XMLHTTP"); else if (window.XMLHttpRequest) xmlHttp = new XMLHttpRequest(); return xmlHttp; } function ver(idSelectOrigen, t_par){ var selectOrigen=document.getElementById(idSelectOrigen); } function cargaContenido(idSelectOrigen, t_par) { // Obtengo la posicion que ocupa el select que debe ser cargado en el array declarado mas arriba var posicionSelectDestino=buscarEnArray(listadoSelects, idSelectOrigen)+1; // Obtengo el select que el usuario modifico var selectOrigen=document.getElementById(idSelectOrigen); // Obtengo la opcion que el usuario selecciono var opcionSeleccionada=selectOrigen.options[selectOrigen.selectedIndex].value; // Si el usuario eligio la opcion "Elige", no voy al servidor y pongo los selects siguientes en estado "Selecciona opcion..." // alert(idSelectOrigen+ " " +selectOrigen); /* /***************************************--CODIGO NO UTILIZADO--*************************************************** if(opcionSeleccionada==0) { var x=posicionSelectDestino, selectActual=null; // Busco todos los selects siguientes al que inicio el evento onChange y les cambio el estado y deshabilito alert("la opción da 0"); while(listadoSelects[x]) { selectActual=document.getElementById(listadoSelects[x]); selectActual.length=0; var nuevaOpcion=document.createElement("option"); nuevaOpcion.value=0; nuevaOpcion.innerHTML="Selecciona Opción..."; selectActual.appendChild(nuevaOpcion); selectActual.disabled=true; x++; } } // Compruebo que el select modificado no sea el ultimo de la cadena else *******************************************************************************************************************/ if (t_par=="0"){ var SelectIndex=document.getElementById(idSelectOrigen).selectedIndex; var obj=document.getElementById(idSelectOrigen); var datotxt=obj[SelectIndex].text; var var_jsp=String(datotxt); if (idSelectOrigen=="select2"){ document.form1.var_select2.value=var_jsp; } if (idSelectOrigen=="select4"){ document.form1.var_select4.value=var_jsp; } if (idSelectOrigen=="select6"){ document.form1.var_select6.value=var_jsp; } if (idSelectOrigen=="select8"){ document.form1.var_select8.value=var_jsp; } if (idSelectOrigen=="select10"){ document.form1.var_select10.value=var_jsp; } if (idSelectOrigen=="select12"){ document.form1.var_select12.value=var_jsp; } if (idSelectOrigen=="select14"){ document.form1.var_select14.value=var_jsp; } if (idSelectOrigen=="select16"){ document.form1.var_select16.value=var_jsp; } if (idSelectOrigen=="select18"){ document.form1.var_select18.value=var_jsp; } document.form1.var_php1.value=var_jsp; } /*------------------------------------*/ if(idSelectOrigen!=listadoSelects[listadoSelects.length-1] && t_par !="0"/*t_par.string!=" "*/) { alert(idSelectOrigen+" "+t_par); // Obtengo el elemento del select que debo cargar var idSelectDestino=listadoSelects[posicionSelectDestino]; var selectDestino=document.getElementById(idSelectDestino); // Creo el nuevo objeto AJAX y envio al servidor el ID del select a cargar y la opcion seleccionada del select origen document.form1.var_php1.value=t_par; var ajax=nuevoAjax(); ajax.open("GET", "select_dependientes_3_niveles_proceso.php?select="+idSelectDestino+"&opcion="+opcionSeleccionada+"&t_part="+t_par, true); ajax.onreadystatechange=function() { if (ajax.readyState==1) { // Mientras carga elimino la opcion "Selecciona Opcion..." y pongo una que dice "Cargando..." selectDestino.length=0; var nuevaOpcion=document.createElement("option"); nuevaOpcion.value=0; nuevaOpcion.innerHTML="Cargando..."; selectDestino.appendChild(nuevaOpcion); selectDestino.disabled=true; } if (ajax.readyState==4) { selectDestino.parentNode.innerHTML=ajax.responseText; } } ajax.send(null); } }
Código PHP:
<?php
// Array que vincula los IDs de los selects declarados en el HTML con el nombre de la tabla donde se encuentra su contenido
$listadoSelects=array(
"select1"=>"BAS_MARCA",
$_GET["select"]=>"MAE_PARTE_EQUIPO",
);
function validaSelect($selectDestino)
{
// Se valida que el select enviado via GET exista
global $listadoSelects;
if(isset($listadoSelects[$selectDestino])) return true;
else return false;
}
function validaOpcion($opcionSeleccionada)
{
// Se valida que la opcion seleccionada por el usuario en el select tenga un valor numerico
if(is_numeric($opcionSeleccionada)) return true;
else return false;
}
$selectDestino=$_GET["select"]; $opcionSeleccionada=$_GET["opcion"]; $tipo_parte=$_GET["t_part"];
if(validaSelect($selectDestino) && validaOpcion($opcionSeleccionada))
{
//$tabla=$listadoSelects[$selectDestino];
$tabla="MAE_PARTE_EQUIPO";
//include 'conexion.php';
require_once ('Connections/Invent_Gme.php');
//conectar();
$consulta=mysql_query("SELECT DTM_MARCA AS id, DTM_serial_p AS opcion FROM $tabla WHERE DTM_MARCA='$opcionSeleccionada' AND DTM_COD_PERIFERICO='$t_part' AND DTM_COD_EQUIPO IS NULL AND DTM_DEFECTUOSO ='0'") or die(mysql_error());
//desconectar();
// Comienzo a imprimir el select
echo "<select name='".$selectDestino."' id='".$selectDestino."' onChange='cargaContenido(this.id,0)'>";
echo "<option value='0'>Elige</option>";
while($registro=mysql_fetch_row($consulta))
{
// Convierto los caracteres conflictivos a sus entidades HTML correspondientes para su correcta visualizacion
$registro[1]=htmlentities($registro[1]);
// Imprimo las opciones del select
echo "<option value='".$registro[0]."'>".$registro[1]."</option>";
}
echo "</select>";
}
?>