amigos hace rato ando tratando de averiguar como se hace esto.
lo que pasa es que necesito obtener la etiqueta del elemento seleccionado de un <select>. me explico
tengo el sgte codigo
Código PHP:
<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Consulta Alumnos</title>
<style type="text/css">
<!--
#Layer1 {
position:absolute;
width:595px;
height:115px;
z-index:1;
left: 69px;
top: 81px;
}
-->
</style>
<script language="javascript">
<!--
//-->
function nuevoAjax()
{
var xmlhttp=false;
try
{
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e)
{
try
{
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
catch (E)
{
xmlhttp = false;
}
}
if (!xmlhttp && typeof XMLHttpRequest!='undefined')
{
xmlhttp = new XMLHttpRequest();
}
return xmlhttp;
}
function cargarContenido()
{
var rut, nombre, apellido, contenedor;
contenedor = document.getElementById('contenidoX');
rut=document.getElementById('frut').value;
nombre=document.getElementById('fnombre').value;
apellido=document.getElementById('fapellido').value;
ajax=nuevoAjax();
ajax.open("GET", "carga_alumno.asp?rut="+rut+"&nombre="+nombre+"&apellido="+apellido,true);
ajax.onreadystatechange=function(){
if (ajax.readyState==4)
{
contenedor.innerHTML = ajax.responseText
}
if(ajax.readyState!=4)
{
contenedor.innerHTML='<img src="../Images/loading.gif" alt="cargando..." width="50" height="50" />';
}
}
ajax.send(null)
}
function Actualiza()
{
valor=document.getElementById('fbusqueda').value;//obtengo valor de select
//etiqueta=document.getElementById('fbusqueda')[selectedindex].innerHTML;
//document.write(valor);
document.getElementById('frut').value=valor;//asigno valor a textbox
//document.getElementById('fnombre').value=etiqueta;
}
</script>
</head>
<body>
<div id="Layer1">
<table width="603" border="1">
<tr>
<td width="146">Rut</td>
<td width="159">Nombre</td>
<td width="146">Apellido</td>
<td colspan="2"> </td>
</tr>
<tr>
<form method="post" name="frm" id="frm" >
<td><label>
<input name="frut" type="text" id="frut" />
</label></td>
<td><label>
<input name="fnombre" type="text" id="fnombre" />
</label></td>
<td><label>
<input name="fapellido" type="text" id="fapellido" />
</label></td>
<td width="58"><label>
<input type="button" name="Submit" value="Buscar" onclick="cargarContenido();"/>
</label></td>
<td width="60"><label>
<input type="reset" name="Submit2" value="Borrar" />
</label></td>
</form>
</tr>
<tr>
<td> </td>
<td> </td>
<td> </td>
<td colspan="2"> </td>
</tr>
<tr>
<td colspan="3"><div id="contenidoX">Ingese Datos del Alumno </div></td>
<td colspan="2"> </td>
</tr>
</table>
</div>
</body>
</html>
este es carga_alumno.asp
Código PHP:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<!--#include file="../funciones/conexion.asp" -->
</head>
<body>
<%
if (Request.ServerVariables("REQUEST_METHOD") = "GET") then
'viene de GET
rut=ucase(replace(request.QueryString("rut"),"'",""))
nombre=ucase(replace(request.QueryString("nombre"),"'",""))
apellido=ucase(replace(request.QueryString("apellido"),"'",""))
response.write("nombre: "&nombre&"<br> apellido: "&apellido&"<br> rut: "&rut&"<br><br>")
if(rut="")and(nombre="")and(apellido="")then
response.write("Debe ingresar al menos un parametros...<br>")
else
condicion=" WHERE "
'si rut no es vacio
if(rut<>"")then
condicion=condicion&"Rut LIKE('"&rut&"%')AND "
end if
'si nombre no es vacio
if (nombre<>"")then
condicion=condicion&"Nombres LIKE('"&nombre&"%')AND "
end if
'si apellido no es vacio
if(apellido<>"")then
condicion=condicion&"Apellidos LIKE('"&apellido&"%')AND "
end if
condicion=mid(condicion,1,len(condicion)-4)
cons="SELECT Rut, Nombres, Apellidos FROM Alumno "&condicion&"ORDER by Apellidos, Nombres ASC"
response.write(cons&"<br>")
set rs = Server.CreateObject("ADODB.Recordset")
rs.Open cons, Conn, 2 , 3, 1
aux=1
'en esta seccionescribo el select
response.write("<select size=""5"" onchange=""Actualiza();"" name=""fbusqueda"" id=""fbusqueda"">")
while(not rs.eof)
alumno=server.HTMLEncode(rs("Nombres")&".."&rs("Apellidos"))
rutX=rs("RUT")
response.Write("<option value="&rutX&">"&alumno&"</option>")
rs.movenext
aux=aux+1
wend
if(aux>1)then
response.Write("</select>")
else
response.Write("<option>Sin Resultados...</option></select>")
end if
rs.Close
Set RS = Nothing
'cierra conexion
Conn.close
set Conn=Nothing
end if
else
'no viene de GET
url="../varios/error.asp"
response.Redirect(url)
'cierra conexion sin get
Conn.close
set Conn=Nothing
end if
%>
</body>
</html>
si selecciono un elemento se activa la funcion Actualizar()
la cual obtiene el valor del elemento y lo asigna a un textobox, pero necesito obtener la estiqueta de ese elemento para asignarlo a otro textbox y utilizo
Cita:
de la funcion Actualizar(); pero no me funciona me dice que no esta definido selectedindex, sin embargo si reemplazo selectedindex por un numero directamente , en ese caso si funciona.etiqueta=document.getElementById('fbusqueda')[selectedindex].innerHTML;
asi
Cita:
Agradeceria cualquier ayuda y/o sugerencia pues me hace mucha falta resolver esto.etiqueta=document.getElementById('fbusqueda')[0].innerHTML;
Gracias---->