Código HTML:
function newAjax()
{
var xmlHttp=null;
if (window.ActiveXObject)
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
else
if (window.XMLHttpRequest)
xmlHttp = new XMLHttpRequest();
return xmlHttp;
}
function addEvent(elemento,nomevento,funcion,captura)
{
if (elemento.attachEvent)
{
elemento.attachEvent('on'+nomevento,funcion);
return true;
}
else
if (elemento.addEventListener)
{
elemento.addEventListener(nomevento,funcion,captura);
return true;
}
else
return false;
}
function cambiar_select(divId, tagName, selectName, selectId, funcion, parametro, Width, AddEvent)
{
url = baseurl+'php/php_selects.php?funcion='+funcion+'¶metro='+parametro+'&tagName='+tagName;
ajax = newAjax();
ajax.onreadystatechange = function()
{
var div = document.getElementById(divId);
div.innerHTML = '';
if(ajax.readyState == 4)
{
var xml = ajax.responseXML;
var opt = xml.getElementsByTagName(tagName);
var select = document.createElement('select');
select.name = selectName;
select.id = selectId;
select.style.width = Width;
var seleccione = document.createElement('option');
var texto = document.createTextNode('Seleccione');
seleccione.appendChild(texto);
seleccione.value = 'seleccione';
select.appendChild(seleccione);
div.appendChild(select);
if(estado != 'seleccione')
{
for(i=0;i<opt.length;i++)
{
var option = document.createElement('option');
var text = document.createTextNode(opt[i].firstChild.nodeValue);
option.appendChild(text);
select.appendChild(option);
}
if(AddEvent == 'add')
{
addUrl = baseurl+'php/php_selects.php?funcion='+funcion+'_addEvent¶metro=NULL&tagName=NULL';
addEv = newAjax();
addEv.onreadystatechange = function()
{
if(addEv.readyState == 4)
{
funcion = addEv.responseText;
}
}
addEv.open('GET',addUrl,true);
addEv.send(null);
addEvent(select,'change',function(){ eval(funcion); },false);
}
}
}
else
{
div.innerHTML = '<img src="'+baseurl+'images/cargando.gif" />';
}
}
ajax.open('GET',url, true);
ajax.send(null);
}
Código PHP:
require("db.php");
if($_REQUEST)
{
$funcion = $_REQUEST["funcion"];
$parametro = $_REQUEST["parametro"];
$tagName = $_REQUEST["tagName"];
if(function_exists($funcion))
{
echo $funcion($parametro);
}
else
{
$xml="<?xml version="1.0\"?>\n";
$xml.="<marco>\n";
$xml.="<".$tagName.">No existen ciudades</".$tagName.">";
$xml.="</marco>";
header('Content-Type: text/xml');
echo $xml;
}
}
function sel_edo($estado)
{
global $db,$tagName;
$xml="<?xml version=\"1.0\"?>\n";
$xml.="<marco>\n";
if($ciudades = $db->get_results('select * from ciudades where estado = "'.$estado.'"'))
{
foreach($ciudades as $row)
{
$xml.= "<".$tagName.">".$row->ciudad."</".$tagName.">\n";
}
}
else
{
$xml.="<".$tagName.">No existen ciudades</".$tagName.">";
}
$xml.="</marco>\n";
header('Content-Type: text/xml');
return $xml;
}
//FIN FUNCION
//INICIO FUNCION
function sel_edo_addEvent($param = NULL)
{
echo "cambiar_codigo(document.getElementById('estado').value,document.getElementById('ciudad_').value)";
}
//FIN FUNCION
Código HTML:
select.appendChild(seleccione); div.appendChild(select);
Ademas trabajo con CodeIgniter por eso pueden ver el uso de una variable no definida
Código HTML:
baseurl
Código PHP:
<script>
baseurl = "<?=base_url();?>";
</script>