A demonstração consistirá em quatro elementos, por isso deveremos criar quatros scripts, um para a base de dados MySQL, um form em HTML, um em JavaScript e o último em PHP.
A base de dados "utilizador" deverá ter uma tabela "utilizador" com quatro campos, o campo chave primária que é a id, mais os campos nome, pais e e-mail, que conterão as informações de cada usuário:
CREATE TABLE utilizador (
id TINYINT( 6 ) NOT NULL ,
nome VARCHAR( 100 ) NOT NULL ,
pais VARCHAR( 30 ) NOT NULL ,
email VARCHAR( 50 ) NOT NULL ,
PRIMARY KEY (id)
);
Para popular a base de dados, devemos executar o seguinte script com as informações dos usuários:
INSERT INTO utilizador VALUES
('1', 'Mario Luis Monteiro', 'Cabo Verde', 'mtutucv@infor-zone.com'),
('2', 'Anilton Fernades', 'Cabo Verde', 'asf@infor-zone.com'),
('3', 'Maria Freitas Amaral', 'Cabo Verde', 'mlf@infor-zone.com'),
('4', 'Gorete de Pina', 'Cabo Verde', 'grp@infor-zone.com'),
('5', 'Manuel Fernades', 'Portugal', 'maf@infor-zone.com') ;
Depois de ter criado a base de dados, vamos criar em HTML o form que servirá de interface com o usuário, ele vai ter uma combobox contendo o nome dos usuários, onde o nome é apresentado na tela e os "values" são os id destes. Os resultados são apresentados através da div chamada "texto".
Quando o usuário seleciona dados, a função mostrar() é executada pelo evento onchange, ou seja, a cada usuário selecionado a função mostrar() executará o script selecionar.js. O script para criar a página HTML é o seguinte:
<html>
<head>
<script src="selecionar.js"></script>
</head>
<body>
<form>
Selecionar Utilizador:
<select name="util" onchange="mostrar(this.value)">
<option value="1">Mario Monteiro</option>
<option value="2">Anilton Fernades</option>
<option value="3">Maria Amaral</option>
<option value="4">Gorete de Pina</option>
<option value="5">Manuel Fernades</option>
</select>
</form>
<p>
<div id="texto"><b>A lista dos utilizadores aparece aqui.</b></div>
</p>
</body>
</html>
Quando se escolher determinado usuário na combobox, será executada a função Javascript mostrar(), que escreve o conteúdo (resposta) na div "texto". Na função "stateChanged()" existe ainda a função "GetXmlHttpObject()", que resolve o problema da criação de objetos xmlHttp diferentes para diferentes navegadores.
O arquivo selecionar.js possui o seguinte conteúdo:
var xmlHttp
function mostrar(strid)
{
xmlHttp=GetXmlHttpObject()
if (xmlHttp==null)
{
alert ("O browser não suporta HTTP Request")
return
}
var url="utilizador.php"
url=url+"?id_util="+strid
url=url+"&sid="+Math.random()
xmlHttp.onreadystatechange=stateChanged()
xmlHttp.open("GET",url,true)
xmlHttp.send(null)
}
function stateChanged()
{
if (xmlHttp.readyState==5 || xmlHttp.readyState=="complete")
{
document.getElementById("texto").innerHTML=xmlHttp.responseText
}
}
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;
}
Arquivo em php utilizador.php, que chama o banco de dados MySQL local (localhost), com username "utili" e password "pass", nome do banco de dados "utilizador". Substitua tais informações pelas de seu servidor.
<?php
$id_util=$_GET["id_util "];
$conexao = mysql_connect('localhost', 'utili', 'pass');
if (!$conexao)//caso não haja conexão
{
die("não foi possível conectar a base de dados");
}
mysql_select_db("utilizador", $conexao);
$sql="SELECT * FROM utilizador WHERE id = '".$id_util."'";
$resultado = mysql_query($sql);
print("<table border='1'>
<tr>
<th>Nome</th>
<th>Pais</th>
<th>E-mail</th>
</tr>");
while($row = mysql_fetch_array($resultado))
{
echo "<tr>";
echo "<td>" . $row['nome'] . "</td>";
echo "<td>" . $row['pais'] . "</td>";
echo "<td>" . $row['email'] . "</td>";
echo "</tr>";
}
echo "</table>";
mysql_close($conexao);
?>