Simulador (Cuando presiona el botón "ejecutar el programa"
se graban todos los cuadros de texto y se ejecuta el primero de la lista
mostrando en una página el resultado)
Problema:
<html>
<head>
<title>Problema</title>
<script languaje="javascript" src="funciones.js" type="text/javascript"></script>
<link rel="StyleSheet" href="estilos.css" type="text/css">
</head>
<body>
<form action="#">
Ingrese una palabra que comience con a:<br>
<input type="text" id="palabra" autocomplete="off"><br>
<div id="resultados"></div>
<input type="submit" value="buscar">
</form>
</body>
</html>
#resultados {
position:absolute;
background:#ff0;
}
#menu {
font-family: Arial;
margin:0px;
padding:0px;
}
#menu ul {
margin:0px;
padding:0px;
list-style-type:none;
}
#menu a {
display: block;
padding: 3px;
background-color: #f7f8e8;
border-bottom: 1px solid #eee;
text-align:center;
}
#menu a:link, #menu a:visited {
color: #f00;
text-decoration: none;
}
#menu a:hover {
background-color: #369;
color: #fff;
}
#menu a:hover {
background-color: #369;
color: #fff;
}addEvent(window,'load',inicializarEventos,false);
function inicializarEventos()
{
var ob=document.getElementById('palabra');
addEvent(ob,'keyup',presionTecla,false);
}
var conexion1;
function presionTecla(e)
{
conexion1=crearXMLHttpRequest();
conexion1.onreadystatechange = procesarEventos;
palabra=document.getElementById('palabra').value;
conexion1.open('GET','pagina1.php?palabra='+palabra, true);
conexion1.send(null);
}
function procesarEventos()
{
var resultados = document.getElementById("resultados");
if(conexion1.readyState == 4)
{
if (conexion1.status==200)
{
var xml = conexion1.responseXML;
var pals=xml.getElementsByTagName('palabra');
cadena='<div id="menu"><ul>';
for(f=0;f<pals.length;f++)
{
cadena = cadena + '<li><a>' + pals[f].firstChild.nodeValue + '</a></li>';
}
cadena = cadena + '</ul></div>';
resultados.innerHTML = cadena;
var obj=document.getElementById("menu");
var lista=obj.getElementsByTagName('a');
for(f=0;f<lista.length;f++)
{
addEvent(lista[f],'click',seleccionPalabra,false);
}
}
else
alert(conexion1.statusText);
}
else
{
resultados.innerHTML = '<img src="../cargando.gif">';
}
}
function seleccionPalabra(e)
{
var enlace;
if (window.event)
enlace=window.event.srcElement;
else
enlace=e.target;
document.getElementById('palabra').value=enlace.firstChild.nodeValue;
document.getElementById('menu').style.display='none';
}
//***************************************
//Funciones comunes a todos los problemas
//***************************************
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 crearXMLHttpRequest()
{
var xmlHttp=null;
if (window.ActiveXObject)
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
else
if (window.XMLHttpRequest)
xmlHttp = new XMLHttpRequest();
return xmlHttp;
}
<?php
$pal=$_REQUEST['palabra'];
$vec=array('alma','algo','amo','aro','animo','arbol','abrir');
if (strlen($pal)>0)
{
for($f=0;$f<count($vec);$f++)
{
if ($pal==substr($vec[$f],0,strlen($pal)))
$veciguales[]=$vec[$f];
}
}
$xml="<?xml version=\"1.0\"?>\n";
$xml.="<palabras>\n";
if (isset($veciguales))
{
for($f=0;$f<count($veciguales);$f++)
{
$xml.="<palabra>".$veciguales[$f]."</palabra>\n";
}
}
$xml.="</palabras>\n";
header('Content-Type: text/xml');
echo $xml;
?>