• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

anuska

Ajax Exemplo

14 mensagens neste tópico

Ola!

eu tenho uma duvida, quem me pode ajudar?  :):confused:

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;
?>

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros 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?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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

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

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros 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.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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

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:D

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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

Sim :P 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 :P

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros 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...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros 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 :P:)  podes-me por favor dizer exactamente como fazer? pff :P

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

obrigada

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Não te vou dar a resposta assim de borla :)

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

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

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

desculpa mas nao sei, nao percebo :P :S o prof nao explica mesmo nada :S

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Concatenação é feita com o operador + . É o que está a explicar no link que mostrei no post acima. É fazeres "home.php?load=pagina" + record. E mais não digo.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora