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>";
}
?>

