Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Fiz um sisteminha de agenda onde os dados são armazenados em um arquivo XML. Implementei o Xpath para fazer a busca de dados.
É possível escolher o tipo de busca que quer fazer, seja pelo nr do telefone, do celular ou pelo nome. No caso do nome o valores só são retornados se digitar o nome corretamente (case sensitive).
Gostaria de buscar os nomes como fazemos com o comando like (%texto%) do mysql; ao digitar uma parte do texto me retornar todos os nós que contém aquela parte.
Arquivo XML
<?xml version="1.0" encoding="utf-8"?>
<agenda>
<dados id="1" nome="Fulano de Tal" tel="(XX) 1234-5678" cel="(XX) 9999-0000" email="fulano.tal@email.com.br"/>
<dados id="2" nome="Ciclano 2" tel="(XX) 1234-5678" cel="(XX) 0000-0000" email="ciclano@email.com.br"/>
<dados id="3" nome="Fulano 3" tel="(XX) 1234-5678" cel="(XX) 0000-0000" email="ciclano@email.com.br"/>
<dados id="4" nome="Fulano 4" tel="(XX) 1111-1111" cel="(XX) 0000-0000" email="ciclano@email.com.br"/>
<dados id="5" nome="Fulano 5" tel="(XX) 2222-2222" cel="(XX) 0000-0000" email="ciclano@email.com.br"/>
<dados id="6" nome="Fulano 6" tel="(XX) 6666-6666" cel="(XX) 0000-0000" email="ciclano@email.com.br"/>
</agenda>
Arquivo PHP
switch ($valor_selecionado){
case "nome":
$result = $xml->xpath("dados[@nome=\"$txt_digitado\"]");
break;
case "tel":
$result = $xml->xpath("dados[@tel=\"$txt_digitado\"]");
break;
case "cel":
$result = $xml->xpath("dados[@cel=\"$txt_digitado\"]");
break;
}
$conta_result = count($result);
// verifica se o array possui dados
if ($conta_result != 0)
{
echo "<table border=0 cellpadding='5' id='tbResultados'>";
echo "<tr>";
echo "<td class='tbTitulo'>Id</td>";
echo "<td class='tbTitulo'>Nome</td>";
echo "<td class='tbTitulo'>Telefone</td>";
echo "<td class='tbTitulo'>Celular</td>";
echo "<td class='tbTitulo'>Email</td>";
echo "<td class='tbTitulo1'>Editar</td>";
echo "<td class='tbTitulo1'>Excluir</td>";
echo "</tr>";
// montando a tabela com os dados do arquivo xml
foreach ($result as $dados)
{
echo "<tr>";
echo "<td valign='top'>" . $dados['id'] . "</td>";
echo "<td valign='top'>" . $dados['nome'] . "</td>";
echo "<td valign='top'>" . $dados['tel'] . "</td>";
echo "<td valign='top'>" . $dados['cel'] . "</td>";
echo "<td valign='top'>" . $dados['email'] . "</td>";
echo "<td valign='top' align='center'><a href=\"index.php?action=edt&id=$dados[id]\" id='btnEditar'><img src='imagens/btn-edit.gif' border='0' /></a></td>";
echo "<td valign='top' align='center'><a href=\"index.php?action=del&id=$dados[id]\"><img src='imagens/btn-del.gif' border='0' /></a></td>";
echo "</tr>";
}
echo "</table>";
echo "<br />";
echo "<p class='alert'><a href='index.php'>Voltar</a></p>";
}
else
{
echo "<p class='alert'>Contato não cadastrado!</p>";
echo "<p class='alert'><a href='index.php'>Voltar</a></p>";
}Carregando comentários...