Jump to content

Exemplo AJAX


anuska
 Share

Go to solution Solved by TheDark,

Recommended Posts

Ola!

eu tenho uma duvida, quem me pode ajudar?  🙂😕

tenho este exemplo em Ajax, tenho uma caixa de texto, e ao por la uma letra, aparecem varias opções pra escolher, por exemplo ao por a letra A na caixa de texto aparecem as opcoes Acer, Asus, etc, para escolher, eu queria que depois ao seleccionar a palavra "Acer" abrir outra página. como posso fazer isso?

obrigada

em baixo vou por o codigo

Sugest.htm

<html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
    <script language="Javascript">
        var xmlHttp
        function showHint(str)
        {
            if (str.length==0)
            {
                document.getElementById("hiddenDIV2").innerHTML="";
                document.getElementById("hiddenDIV2").style.visibility='hidden';
                return;
            }
            xmlHttp=GetXmlHttpObject(); //cria o objecto XMLHttpRequest do browser
            if ( xmlHttp==null)
            {
                alert ("O seu browser não suporta AJAX!");
                return;
            }
            var url="sugest.php";
            url=url+"?param="+str;
            //cria um id da sessão para não fazer cache o browser
            url=url+"&sid="+Math.random();
            xmlHttp.onreadystatechange=stateChanged;
            xmlHttp.open("GET",url,true);
            xmlHttp.send(null);
        }
        function stateChanged()
        {
            if (xmlHttp.readyState==4)
            {
                var resposta = xmlHttp.responseText;
                if(resposta.length>0)
                {
                    document.getElementById("hiddenDIV2").style.visibility='visible';
                    document.getElementById("hiddenDIV2").innerHTML=xmlHttp.responseText;
                }
                else
                    document.getElementById("hiddenDIV2").style.visibility='hidden';
            }
        }
        function GetXmlHttpObject()
        {
            var xmlHttp=null;
            try
            {
                // Firefox, Opera 8.0+, Safari
                xmlHttp=new XMLHttpRequest();
            }
            catch (e)
            {
                // Internet Explorer
                try
                {
                    xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
                }
                catch (e)
                {
                    xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
                }
            }
            return xmlHttp;
        }
        function loadrecord(record) // quando se clica no link insere na caixa
        {
            document.schform.txt1.value = record;
            document.getElementById("hiddenDIV2").style.visibility='hidden';
        }
    </script>
    <body>
        <form name="schform">
            <table>
                <tr>
                    <td>Primeiro Nome:</td>
                    <td><input type="text" id="txt1" name="txt1"
                               onkeyup="showHint(this.value)"></td>
                </tr>
            </table>
        </form>
        <div id="hiddenDIV2" style="position:relative; top: -22px; left: 102px;width: 200;
        visibility:hidden; background-color:#FFFF40; border: 1px solid black;">
        </div>
        
</body></html>

sugest.php

<?php
header("Content-Type: text/html; charset=ISO-8859-1",true);
// Array com os nomes
$a[]="Acer";
$a[]="Asus";
$a[]="Hp";
$a[]="Tsunamy";
$a[]="Compact";
$a[]="Vaio";

//obtem os parâmetros
$param=$_GET["param"];
//parametros passados param>0
if (strlen($param) > 0)
{
$hint="";
for($i=0; $i<count($a); $i++)
{
	if (strtolower($param)==strtolower(substr($a[$i],0,strlen($param))))
	{
		$hint .= "<a href=\"javascript:loadrecord('".$a[$i]."')\">" .$a[$i]."</a></br>";
	}
}
}
if ($hint == "")
{
$response="";
}
else
{
$response=$hint;
}
//envia a resposta
echo $response;
?>
Link to comment
Share on other sites

ja formatei o texto, eu sei que assim se le o codigo muito melhor, mas não sabia dessa opcao.

as marcas sao guardadas num array

// Array com os nomes

$a[]="Acer";

$a[]="Asus";

$a[]="Hp";

$a[]="Tsunamy";

$a[]="Compact";

$a[]="Vaio";

por isso nao sei como usar

if(result==Vaio), nao posso fazer isso, estao a perceber a minha duvida?

Link to comment
Share on other sites

ja formatei o texto, eu sei que assim se le o codigo muito melhor, mas não sabia dessa opcao.

as marcas sao guardadas num array

// Array com os nomes

$a[]="Acer";

$a[]="Asus";

$a[]="Hp";

$a[]="Tsunamy";

$a[]="Compact";

$a[]="Vaio";

por isso nao sei como usar

if(result==Vaio), nao posso fazer isso, estao a perceber a minha duvida?

Não sei se é isto que queres:

if( in_array( $result, $a ) )
....

Um conselho. Declara arrays desta maneira:

$a = array( 'Acer', 'Asus' ... )

Fica mais fácil de ler.

Link to comment
Share on other sites

Eu já tinha formatado o código, incluindo a indentação 😛

Para que página queres ir quando seleccionas uma marca? É só uma questão de formatares o url dentro da função loadrecord.

Sim isso.. mas como faço?

por exemplo ao carregar em HP abre a pagina:

home.php?load=paginaHP

como faço isso?

muito obrigada a todos 🙂😄 :D:D:D

Link to comment
Share on other sites

window.location = "home.php?load=paginaHP";

Sim 😛 funciona, obrigada

mas assim seja qual for a opção da  caixa, ele abre sempre a mesma pagina ("home.php?load=paginaHP")

e eu queria que ao escolhe "Aser" abrir uma pagina por exemplo (home.php?load=paginaAcer)

e ao carregar em "Hp" abrir  ("home.php?load=paginaHP") e assim

🙂

obrigada pela ajuda 😛

Link to comment
Share on other sites

lol, desculpa lá mas isso é simples concatenação de strings. Estás a receber a parte variável do url que queres alterar como parâmetro da função loadrecord. É só concatenares a parte fixa à variável que recebes.

Se tens aquele código todo em PHP e JavaScript e não sabes o que fazer, algo de muito errado se passa...

Desaparecido.

Link to comment
Share on other sites

lol, desculpa lá mas isso é simples concatenação de strings. Estás a receber a parte variável do url que queres alterar como parâmetro da função loadrecord. É só concatenares a parte fixa à variável que recebes.

Se tens aquele código todo em PHP e JavaScript e não sabes o que fazer, algo de muito errado se passa...

Sim.. não sei fazer 😛🙂   podes-me por favor dizer exactamente como fazer? pff 😛

esse código foi o meu professor que mostrou na aula e depois disse "Façam!! conta pra nota"

obrigada

Link to comment
Share on other sites

  • Solution

Não te vou dar a resposta assim de borla 🙂

Lê isto, pelo menos até ao fim da secção "The Add By Value Operator". Deve dar-te uma ideia do que precisas 😛 Depois se ainda precisares, volta aqui.

Se o professor fez isso sem dar uma ideia de como se faz, devia levar uma traulitada...

Desaparecido.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.