Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

  • 0
marlone

Sistema de busca sem refresh php

Pergunta

Como inserir um sistema de busca na minha tabela sem refresh, me ajudem por favor :D

<?php
	require('class/validacao.php');
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<?php
		$titulo = "Controle &raquo; Listar Material";
		require_once ("includes/header.php"); 
	?>
</head>
<title> Listar material </title>
<style>
table, td, th {    
    border: 1px solid #ddd;
    text-align: left;
}

table {
    border-collapse: collapse;
    width: 100%;
}

th, td {
    padding: 15px;
}
</style>
</head>
<body>
				<?php
	require_once('includes/testes.php');
	?>
	
		
<?php
// Conexão ao banco
require_once('conexao.php');
?>
<div id="principal">
<h1>MATERIAIS</h1>

				<form action="<?php $_SERVER['PHP_SELF']?>" method="post">
	

					
<?php
echo"<table width='100%' border='1'>";
echo '<table>';
echo '<tr>';
echo'<td>id</td>';
echo'<td>NOME</td>';
echo'<td>SETOR</td>';
echo'<td>Estoque  Atual</td>';
echo'<td>MINIMO</td>';
echo'<td>Entrada</td>';
echo'<td>Saida</td>';
echo'<td>Editar</td>';
echo'<td>Excluir</td>';
echo '</tr>';
$result_mat = "SELECT * FROM tbl_material";
$resultado_mat = mysqli_query($conn, $result_mat);
while($row_mat = mysqli_fetch_assoc($resultado_mat)){
echo '<tr>';
echo '<td>'.$row_mat["id"].'</td>';
echo '<td>'.$row_mat["NOME"].'</td>';
echo '<td>'.$row_mat["SETOR"].'</td>';
echo '<td>'.$row_mat["QUANTIDADE"].'</td>';
echo '<td>'.$row_mat["MINIMO"].'</td>';
echo '<td><a href="form_entrada.php?id='.$row_mat['id'].'">✚</a>
      <td><a href="form_saida.php?id='.$row_mat['id'].'">▬</a>
		<td><a href="form_alteracao_material.php?id='.$row_mat['id'].'">✐</a>
      <td><a href="deleta1.php?id='.$row_mat['id'].'">✖</a>
      </tr>';
}
echo '</table>';

?>
										
		
				</form>
			</div> <!-- Fim da div#principal -->
				<?php include('includes/fimerodape.php'); ?>

</body>

</html>

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

2 respostas a esta questão

Recommended Posts

Voce deve usar ajax. Voce vai precisar de uma funcao JavaScript que vai basicamente fazer o PHP rodar novamente:

 

var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
    if (this.readyState == 4 && this.status == 200) {
       //aqui voce recebera a resposta do PHP
       document.getElementById("demo").innerHTML = xhttp.responseText;
    }
};
xhttp.open("GET", "arquivo.php", true);
xhttp.send();

 

Era isso?

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Outra maneira (dependendo da quantidade de dados) é fazer inteiramente com JavaScript...

 

<!DOCTYPE HTML>
<html lang="pt-BR">
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>

<p>Filtro por Nome:</p>
<p style="margin-bottom: 5px;">Nome:</p>
<input type="text" name="nome" id="nomeDaEmpresa" placeholder="Informe o nome da Empresa"/>


	
<hr />
<h3>Dados:</h3>		
<table style="width: 100%;text-align: left;">
	<thead>
		<tr>
			<th>Nome da Empresa</th>
			<th>Status</th>
		</tr>
	</thead>
	<tbody id="dados">
	
	</tbody>

</table>



<script type="text/javascript">	
	var dados = [
		{
		  "Nome": "Carrefour",
		  "Status": true
		}
		,{
		  "Nome": "Pão de Açucar",
		  "Status": false
		}
		,{
		  "Nome": "Extra",
		  "Status": true
		}
		,{
		  "Nome": "WallMart",
		  "Status": true
		}
	];
	
	document.getElementById("nomeDaEmpresa").addEventListener("keyup", function() {
		
		var dadosCopy = dados.slice();
		const filterNome = this.value;
		
		
		var i = dadosCopy.length;
		while (i--) {
		
			var myRegex = new RegExp(filterNome, 'gi');			
			if(dadosCopy[i]['Nome'].match(myRegex) ==  null){
				dadosCopy.splice(i, 1); // Remove o elemento
			}
		}		
		
		popDados(dadosCopy);
	});	
	
	
	function popDados(myArr){
		var dadosTable = document.getElementById("dados");
		while (dadosTable.firstChild) {
			dadosTable.removeChild(dadosTable.firstChild);
		}
		
		for(var x = 0; x < myArr.length; x++){
			var trTable = document.createElement('tr');
			trTable.innerHTML = '<td>'+  myArr[x]['Nome'] +'</td>' + '<td>'+ myArr[x]['Status'] +'</td>';			 
			
			document.getElementById("dados").appendChild(trTable);
		}
	}
	
	//Logo ao iniciar o DOM
	popDados(dados);
</script>
</body>
</html>

https://fiddle.jshell.net/7Ldt3x7a/

 

Ps: 

Qualquer semelhança com 'filter' do Angular é mera coincidência 

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por daemon
      Preciso fazer uma busca antes de inserir um registro no banco de dados.

      No caso preciso verificar se existe uma frase no banco antes de cadastrar uma nova.
       
      Exemplo:
       
      Tenho no banco a coluna ASSUNTO = "Morre David Johansen, vocalista dos New York Dolls, aos 75 anos".
       
      Quando vou cadastrar uma nova notícia "Morre, aos 75 anos, David Johansen, do New York Dolls" é parecida. Mas não quero cadastrar 2 vezes.
       
      No like não consigo fazer esta busca.... o que posso fazer para verificar esta busca antes de cadastrar ?
    • Por babylon
      Olá galera tudo bem?
      Deixa eu perguntar, estava mexendo no meu site e queria adicionar em html essa tabela porem esta dando erro pois fica assim:
       

      Porem gostaria que ficasse assim:

      Segue o código da tabela:
      <center><table border="0">
          <tr>
      <td bgcolor="#0092df" width="24%"><a href="/categorias?ename=smartphones"><span style="font-size: 20px; color: #ffffff;"><b> <font color="#0092df">..</font>Bicicleta<br> <font color="#0092df">..</font>Track Bikes<br> <font color="#0092df">..</font>Aro 29 TKS</b></a></span><br><br><font size="5"><center><span style="background-color: #A1CD44">DE:</span></font> <br><font size="5"><s>R$ 1.999,99</center></font></s> </td><td><p><a href="/categorias?ename=smartphones"><img src="/static/img/itembicicleta.jpg"><br><font size="5"><center><span style="background-color: #A1CD44">COM - 60%:</span></font> <br><font size="5">1.199,99</font></center></a></td>
             <td><font color="#ffffff">....</font></td>
              <td bgcolor="#0092df" width="24%"><a href="/categorias?ename=smartphones"><span style="font-size: 20px; color: #ffffff;"><b> <font color="#0092df">..</font>Monitor 24"<br> <font color="#0092df">..</font>Samsung<font color="#0092df">aa.aa</font><br> <font color="#0092df">..</font>1ms 144hz</b></a></span></center></td><td><p><a href="/categorias?ename=smartphones"><img src="/static/img/itemmonitor.jpg"></a></td>
          </tr>
          </table></center>
      O que estaria errado, pois não sei como colocar nessa tabela outro fundo de outra cor, veja que usei td bgcolor="#0092df" para o azul escuro mas não sei como usaria pro "#e4f1fb" para o fundo ficar de azul claro em baixo bem como não ficou correto em altura o "DE:" com o "COM - 60%:".
      Bom é isso, obg.


    • Por clovis.sardinha
      Bom dia.
      Meu problema é o seguinte:
      Estou fazendo uma tabela e preciso mostrar o usuário e várias cidades que pertencem a este usuário.
      O resultado do array é o seguinte:

      Quando passo para a tabela os valores de cidade se repetem para o mesmo usuário até o final e retorna fazendo o mesmo para o próximo usuário. 
      Veja abaixo

       
      Meu código para a tabela é a seguinte:
      <tr> <td align="left"><?php echo $usuario['nome'] ?></td> <td align="left"><?php echo $usuario['nome_orgao'] ?></td> <td align="left"><?php echo $usuario['nome_funcao'] ?></td> <?php foreach($destinos as $key=>$destino):?> <?php $key=0;?> <td align="left"> <?php foreach($destino as $chave=> &$cidade): ?> <?php echo $cidade['cid_nome']."-";?> <?php endforeach;?> </td> <?php $key+=$key; ?> <?php endforeach;?> <td><?php echo date('d/m/Y', strtotime( $usuario['created_at'])) ?></td> <td align="left"><a href="<?php echo base_url('UserAdmin/Usuario/getUsuarioById')."/".$usuario['id_user'] ?>">DETALHES</a></td> </tr> <?php endforeach ?> Onde estou errando? O que tenho de fazer para percorrer este array de modo a aparecer apenas as cidades pertencentes a cada usuário?

    • Por MarceloEBM
      Baixei a tabela do melhorenvio e adaptei para o formato da webcontinental que eles disponibilizam, enviei para o gerente de conta e ele disse que rodou, não atualizou e não tem nenhuma mensagem de erro pra me passar.
       
      Posso estar fazendo errado, alguém tem alguma experiencia com esta tabela de frete?
    • Por btpdsnb
      Boa tarde, pessoal!
      Meu nome é Rodrigo e sou aluno de graduação da FEA-USP. Meu grupo está realizando uma pesquisa para analisar o que motiva e retém os desenvolvedores de software nas organizações do Brasil.
      Acreditamos que este tipo de pesquisa pode ajudar as empresas a entenderem os principais fatores de retenção e gerir melhor as práticas de gestão de pessoas adotadas para retê-los.
      Todos os dados pessoais coletados serão confidenciais, utilizados exclusivamente para fins acadêmicos.
      Aos que puderem responder, o questionário leva de 5 a 8 minutos para ser respondido.
      Link do formulário: https://docs.google.com/forms/d/1izmjInl_uuTgjIaQUF7Lk6rh7OudSy6MoBRugiMQdic/viewform?edit_requested=true
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.