Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Mensajes - VictorDevelop

Páginas: [1]
1
Buenos dias. Tengo una pagina en la que se introdoce un nombre y debe responder si es nombre esta disponible y en caso de no estarlo mostrar unas sugerencias,y aqui es donde falla, que estan en un fichero xml.

Esta es la pagina html:

Código: [Seleccionar]
<!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>Ejercicio 14 - Comprobar disponibilidad del login y mostrar alternativas</title>
    <script type="text/javascript">
    var READY_STATE_COMPLETE = 4;
    var peticion_http = null;
 
    function inicializa_xhr()
    {
        if (window.XMLHttpRequest) {
            return new XMLHttpRequest();
        } else if (window.ActiveXObject) {
            return new ActiveXObject("Microsoft.XMLHTTP");
        }
    }
 
    function comprobar() {
        var login = document.getElementById("login").value;
        peticion_http = inicializa_xhr();
        if (peticion_http) {
            peticion_http.onreadystatechange = procesaRespuesta;
            peticion_http.open("POST", "compruebaDisponibilidadEjer14.xml",
            true);
            peticion_http.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
            peticion_http.send("login=" + login + "&nocache=" + Math.random());
        }
    }
    function procesaRespuesta() {
        if (peticion_http.readyState == READY_STATE_COMPLETE) {
            if (peticion_http.status == 200) {
 
                var login = document.getElementById("login").value;
                var documento_xml = peticion_http.responseXML;
                var nombresUsados = documento_xml.getElementsByTagName("login");
                var raiz = documento_xml.getElementsByTagName("respuesta")[0];
                var disponible = raiz.getElementsByTagName("disponible")[0].firstChild.nodeValue;
                if (disponible == "si") {
                    document.getElementById("disponibilidad").innerHTML = "El nombre elegido [" + login + "] está disponible";
                }
                else {
                    var mensaje = "NO está disponible el nombre elegido [" + login + "]. Puedes probar con las siguientes alternativas.";
                    var alternativas = raiz.getElementsByTagName("alternativas")[0];
                    var logins = alternativas.getElementsByTagName("login");
                    mensaje += "<ul>";
                    for (var i = 0; i < logins.length; i++) {
                        mensaje += "<li><a href=\"#\"onclick=\"selecciona('" + logins[i].firstChild.nodeValue + "'); return false\">" + logins[i].firstChild.nodeValue + "<\/a><\/li>";
                    }
                    mensaje += "<\/ul>";
                    document.getElementById("disponibilidad").innerHTML = mensaje;
                }
            }
        }
    }
        function selecciona(login) {
            var cuadroLogin = document.getElementById("login");
            cuadroLogin.value = login;
        }
 
        window.onload = function () {
            document.getElementById("comprobar").onclick = comprobar;
        }
</script>
</head>
<body>
    <h1>Comprobar disponibilidad del login y mostrar alternativas</h1>
    <form>
        <label for="login">Nombre de usuario:</label>
        <input type="text" name="login" id="login" />
        <a id="comprobar" href="#">Comprobar disponibilidad...</a>
    </form>
    <div id="disponibilidad"></div>
</body>
</html>

Y este el fichero XML
Código: [Seleccionar]
?xml version="1.0" encoding="utf-8" ?>
 <xml>
  <login>Paco</login>
  <respuesta>
    <disponible>si</disponible>
  </respuesta>
  <respuesta>
    <disponible>no</disponible>
    <alternativas>
      <login>Juan</login>
      <login>Pedro</login>
      <login>Jorge</login>
    </alternativas>
  </respuesta>
</xml>

2
Muchas gracias por tan completa respuesta.
Mirare las normas para compartir codigo.

3
Buenos dias. Tengo un problema con el ejercicio CU01212F del curso básico de programación web con Ajax.

Mediante alerts he visto que status coge el valor 404,no encontrado,y me gustaria saber por que y cómo lo arreglo.

Este es el código html:

Código: [Seleccionar]
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>Alta Usarios</title>
    <script type="text/javascript">

        function UsuarioExistente(nombre)
        {
            //alert("Dentro de la funcion");
            var xmlhttp;
            var nombreRecibido = nombre;
            var contenidoMostrar = "";

            //Valor del label de respuesta
            var valorLabelRespuesta = document.getElementById("UsuarioExiste");
            var respuestaExisteMostrar = "";


            //Si no se le ha pasado ningun valor
            if (nombreRecibido.length == 0)
            {
                document.getElementById("UsuarioExiste").innerHTML = "";
                return;
            }

            xmlhttp = new XMLHttpRequest();
            xmlhttp.onreadystatechange = function ()
            {
                //alert("Antes del If que comprueba respuesta ReadyStateVale=>"+xmlhttp.readyState+"Y Status:"+xmlhttp.status);
                if (xmlhttp.readyState == 4 && xmlhttp.status == 200)
                {
                    alert("Dentro del if");

                    nombreRecibido = xmlhttp.responseText.split;

                    for ($i = 0; $i < nombreRecibido.length; $i++)
                    {
                        alert("DentroDelfor"+nombreRecibido[i]);
                    }
                }
                if (xmlhttp.status == 404)
                {
                    alert("Error=>" + Error);
                    return;
                }
                alert("Despues del If que comprueba respuesta ReadyStateVale=>" + xmlhttp.readyState + "Y Status:" + xmlhttp.status);

            }
            var paramentros = 'nombreUsuario' + encodeURIComponent(nombreRecibido);
            xmlhttp.open('POST', 'altaUsuarios.php'); // Método post y url invocada
            xmlhttp.setRequestHeader('Content-type', 'application/x-www-form-urlencoded'); // Establecer cabeceras de petición
            xmlhttp.send(paramentros); // Envio de parámetros usando POST
        }
               
    </script>
</head>
<body>
    <h1>Alta Usarios</h1>
    <form  method="">
        <label style="padding-right:20px;">Usuario</label>
        <input name="nombreUsuario" onBlur="UsuarioExistente(this.value)"/>
        <label name="UsuarioExiste"></label>
        <br />
        <label style="padding-right:15px;">Nombre</label>
        <input name="nombre"/>
        <br />
        <label style="padding-right:5px;">Apellidos</label>
        <input name="apellidos" />
        <input type="submit" value="Enviar"/>
    </form>
</body>
</html>

Y este el pequeño fichero php:
Código: [Seleccionar]
<?php
//Nombres alojados
$nombres[0]="Jose";
$nombres[1]="Fernando";
$nombres[2]="Juan";
$msg="";
$nombreRecibido=$_POST["nombreUsuario"];
echo
"DentroDealtausuarios.php";
$existeUsuario=false;

for(
$i=0;$i<count($nombres);$i++)
{
    if(
$nombres[$i]==$nombreRecibido)
    {
        
$msg="El usuario ".$nombres[$i]."Ya existe";
        
$existeUsuario=true;

    }else
    {
        
$msg="Usuario ".$nombres[$i]."esta disponible";
    }
}
echo 
$msg;
?>


Alguna idea?

Saludos.

Páginas: [1]

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".