Ir para conteúdo

POWERED BY:

Arquivado

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

groudon900

Filtro de Busca para tabela mysqli

Recommended Posts

segue o codigo que estou usando 

 

<?php
		//Receber o número da página
		$pagina_atual = filter_input(INPUT_GET,'pagina', FILTER_SANITIZE_NUMBER_INT);
		$pagina = (!empty($pagina_atual)) ? $pagina_atual : 1;

		//Setar a quantidade de itens por pagina
		$qnt_result_pg = 20;

		//calcular o inicio visualização
		$inicio = ($qnt_result_pg * $pagina) - $qnt_result_pg;

		$result_usuarios = "SELECT * FROM vendas ORDER BY data DESC LIMIT $inicio, $qnt_result_pg";
		$resultado_usuarios = mysqli_query($conn, $result_usuarios);
		while($row_usuario = mysqli_fetch_assoc($resultado_usuarios)){ ?>
                  <tbody>
                    <tr>
                      <td><img src="../foto/foto_pagamentos/<?php echo $row_usuario['fotos'] ?>" class="foto2"></td>
                      <td><?php echo $row_usuario['cliente'] ?></td>
                      <td><?php echo $row_usuario['email'] ?></td>
                      <td><?php echo $row_usuario['servico'] ?></td>
                      <td><?php echo $row_usuario['data'] ?></td>                     
                      <td>R$ <?php echo $row_usuario['valor'] ?></td>
                      <td><?php echo $row_usuario['metodo'] ?></td>
                      <td><?php echo $row_usuario['status'] ?></td>
                      <td><?php echo $row_usuario['ultimaalteracao'] ?></td>
                      <td><div class="dropdown no-arrow">
                          <a class="dropdown-toggle" href="#" role="button" id="dropdownMenuLink" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
                        <i class="fas fa-ellipsis-v fa-sm fa-fw text-gray-600"></i>
                        </a>
                    <div class="dropdown-menu dropdown-menu-right shadow animated--fade-in" aria-labelledby="dropdownMenuLink">
                      <div class="dropdown-header">PAGAMENTOS:</div>
                      <a class="dropdown-item" href="criarpagamentos?id=<?php echo $row_usuario['id'] ?>">Criar Pagamentos</a>
                      <div class="dropdown-divider"></div>
                      <a class="dropdown-item" href="proc_apagar_pagamentos.php?id=<?php echo $row_usuario['id'] ?>">Apagar Pagamentos</a>
                    </div>
                  </div></td>
                     
                    </tr>
                      <?php } ?>

 

queria fazer um filtro de busca, Tipo pra buscar por um nome especifico ou serviço

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa noite

faz por ajax

segue o código

Config.php

<?php
$DB_HOST="localhost";
$DB_NAME= "root";
$DB_USER= "banco_de_dados";
$DB_PASS= "sua_senha";
$Tabela="sua_tabela_do_banco";


	# conectar o banco de dados
    $con=@mysqli_connect($DB_HOST, $DB_USER, $DB_PASS, $DB_NAME);
    if(!$con){
        die("impossível conectar: ".mysqli_error($con));
    }
    if (@mysqli_connect_errno()) {
        die("Falha na conexão: ".mysqli_connect_errno()." : ". mysqli_connect_error());
    }

?>

Arquivo da pasta ajax

<?php
//StatusSN
function StatusSN($Status){
    if ($Status == '1') {
        echo '<span class="btn btn-success active">Pago</span>';
    } elseif ($Status == '2') {
        echo '<span class="btn btn-warning active">Pendente</span>';
    } elseif ($Status == '3') {
        echo '<span class="btn btn-danger active">Não Pago</span>';
		}
}
	
	/* Conectar ao banco de dados*/

	require_once ("../conexion.php");

	
 	
mysqli_set_charset($con,"utf8");
	
$action = (isset($_REQUEST['action'])&& $_REQUEST['action'] !=NULL)?$_REQUEST['action']:'';
if($action == 'ajax'){
	$query = mysqli_real_escape_string($con,(strip_tags($_REQUEST['query'], ENT_QUOTES)));

	$tables="".$Tabela."";
	$campos="*";
	$sWhere="".$Tabela.".cliente LIKE '%".$query."%'  
	OR ".$Tabela.".email LIKE '%".$query."%'  
	OR ".$Tabela.".data LIKE '%".$query."%' 
	OR ".$Tabela.".valor LIKE '%".$query."%'  
	OR ".$Tabela.".status LIKE '%".$query."%' 
	OR ".$Tabela.".ultimaalteracao LIKE '%".$query."%'
	OR ".$Tabela.".metodo LIKE '%".$query."%'";
	$sWhere.=" order by ".$Tabela.".cliente";
	
	
	include 'pagination.php'; // inclui arquivo de paginação
// variáveis de paginação
	$page = (isset($_REQUEST['page']) && !empty($_REQUEST['page']))?$_REQUEST['page']:1;
	$per_page = intval($_REQUEST['per_page']); // quantos registros você deseja mostrar
	$adjacents  = 50; // intervalo entre as páginas após o número de adjacentes
	$offset = ($page - 1) * $per_page;
	
// Conte o número total de linhas na sua tabela * /
	$count_query   = mysqli_query($con,"SELECT count(*) AS numrows FROM $tables where $sWhere ");
	if ($row= mysqli_fetch_array($count_query)){$numrows = $row['numrows'];}
	else {echo mysqli_error($con);}
	$total_pages = ceil($numrows/$per_page);
	
// consulta principal para buscar os dados
	$query = mysqli_query($con,"SELECT $campos FROM  $tables where $sWhere LIMIT $offset,$per_page");
	
// percorre os dados buscados
	
$finales=0;

		
	
	if ($numrows>0){
		
	?>
	<html 	
<head lang="pt-br" class="no-js">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="robots" content="noindex" />
  <meta name="viewport" content="width=device-width, initial-scale=1">

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.0.0/jquery.min.js"></script>


<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-modal/0.9.1/jquery.modal.min.js"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/jquery-modal/0.9.1/jquery.modal.min.css" />

</head>	
	
  
		<div class="table-responsive">
	
			<table class="table table-striped table-hover">
									        <thead>
									            <tr>
									                	
									                <th>Id</th>
                                                    <th>Imagem</th>													
                                                    <th>Clientes</th>									                
													<th>E-mail</th>
									              	<th>Serviços</th>
									              	<th>Data</th>
													<th>Valor</th>
													<th>Método</th>
													<th>Status</th>
													<th>Data Edição</th>																										
													<th width="50%">Ações</th>
									              
									            </tr>
									        </thead>
				<tbody>	
						<?php 
						while($row_usuario  = mysqli_fetch_array($query)){	
							$id              = $row_usuario['id'];
							$cliente         = $row_usuario['cliente'];
							$email           = $row_usuario['email'];
							$servico         =$row_usuario['servico'];
							$data            =$row_usuario['data'];
							$valor           =$row_usuario['valor'];
							$metodo          =$row_usuario['metodo'];
							$status          =$row_usuario['status'];
                            $ultimaalteracao =$row_usuario['ultimaalteracao'];							
                            $fotos           =$row_usuario['fotos'];							
							$finales++;

						?>	
			<tr>
                      <td><img src="../foto/foto_pagamentos/<?php echo $row_usuario['fotos']; ?>" class="foto2"></td>
                      <td><?php echo $row_usuario['cliente']; ?></td>
                      <td><?php echo $row_usuario['email']; ?></td>
                      <td><?php echo $row_usuario['servico']; ?></td>
                      <td><?php echo $row_usuario['data']; ?></td>                     
                      <td>R$ <?php echo $row_usuario['valor']; ?></td>
                      <td><?php echo $row_usuario['metodo']; ?></td>
                      <td><?php echo StatusSN($row_usuario['status']); ?></td>
                      <td><?php echo $row_usuario['ultimaalteracao']; ?></td>
                      <td><div class="dropdown no-arrow">
                          <a class="dropdown-toggle" href="#" role="button" id="dropdownMenuLink" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
                        <i class="fas fa-ellipsis-v fa-sm fa-fw text-gray-600"></i>
                        </a>
                    <div class="dropdown-menu dropdown-menu-right shadow animated--fade-in" aria-labelledby="dropdownMenuLink">
                      <div class="dropdown-header">PAGAMENTOS:</div>
                      <a class="dropdown-item" href="criarpagamentos?id=<?php echo $row_usuario['id']; ?>">Criar Pagamentos</a>
                      <div class="dropdown-divider"></div>
                      <a class="dropdown-item" href="proc_apagar_pagamentos.php?id=<?php echo $row_usuario['id']; ?>">Apagar Pagamentos</a>
                    </div>
                  </div>
				  </td>


			</tr>
						<?php }?>
						<tr>
							<td colspan='6'> 
								<?php 
									$inicios=$offset+1;
									$finales+=$inicios -1;
									echo "Mostrando $inicios al $finales de $numrows registros";
									echo paginate( $page, $total_pages, $adjacents);
								?>
							</td>
						</tr>


				</tbody>			
			</table>

		</div>	


<?php
}

}


?>

Para fazer a paginação

<?php
function paginate($page, $tpages, $adjacents) {
	$prevlabel = "&lsaquo; Anterior";
	$nextlabel = "Proximo &rsaquo;";
	$out = '<ul class="pagination   pull-right">';
	
	// etiqueta anterior

	if($page==1) {
		$out.= "<li class='page-item disabled'><a>$prevlabel</a></li>";
	} else if($page==2) {
		$out.= "<li class='page-item'><a href='javascript:void(0);' onclick='load(1)'>$prevlabel</a></li>";
	}else {
		$out.= "<li class='page-item'><a href='javascript:void(0);' onclick='load(".($page-1).")'>$prevlabel</a></li>";

	}
	
	// primeiro rótulo
	if($page>($adjacents+1)) {
		$out.= "<li class='page-item'><a href='javascript:void(0);' onclick='load(1)'>1</a></li>";
	}
	// intervalo
	if($page>($adjacents+2)) {
		$out.= "<li class='page-item'><a>...</a></li>";
	}

	// Páginas

	$pmin = ($page>$adjacents) ? ($page-$adjacents) : 1;
	$pmax = ($page<($tpages-$adjacents)) ? ($page+$adjacents) : $tpages;
	for($i=$pmin; $i<=$pmax; $i++) {
		if($i==$page) {
			$out.= "<li class='active page-item'><a>$i</a></li>";
		}else if($i==1) {
			$out.= "<li class='page-item'><a href='javascript:void(0);' onclick='load(1)'>$i</a></li>";
		}else {
			$out.= "<li class='page-item'><a href='javascript:void(0);' onclick='load(".$i.")'>$i</a></li>";
		}
	}

	// intervalo

	if($page<($tpages-$adjacents-1)) {
		$out.= "<li class='page-item'><a>...</a></li>";
	}

	// Último

	if($page<($tpages-$adjacents)) {
		$out.= "<li class='page-item'><a href='javascript:void(0);' onclick='load($tpages)'>$tpages</a></li>";
	}

	// Próximo

	if($page<$tpages) {
		$out.= "<li class='page-item'><a href='javascript:void(0);' onclick='load(".($page+1).")'>$nextlabel</a></li>";
	}else {
		$out.= "<li class='disabled page-item'><a>$nextlabel</a></li>";
	}
	
	$out.= "</ul>";
	return $out;
}
?>

 

No seu arquivo que vai receber as buscas coloca isso

			<div class='col-sm-12 pull-right'>
			<div id="custom-search-input">
                            <div class="input-group col-md-12">
                                <input type="text" class="form-control" placeholder="Faça a sua busca aqui...."  id="q" onkeyup="load(1);" />
                                <span class="input-group-btn">
                                    <button class="btn btn-success" type="button" onclick="load(1);">
                                        <span class="glyphicon glyphicon-search"></span>
                                    </button>
                                </span>
                            </div>
                </div>
			</div>
			<div class='clearfix'></div>
			<hr>
			<center><div id="loader"></div></center><!-- Carga de datos ajax aqui -->
			<div id="resultados"></div><!-- Carga de datos ajax aqui -->
			<div class='outer_div'></div><!-- Carga de datos ajax aqui -->
            
			

Css para barra de busca

  <style type="text/css">
{
color: #666;
font: 90%/180% Arial, Helvetica, Sans-serif;
width: 800px;
max-width: 96%;
margin: 0 auto;
}
a {
 
  color: #69c;
text-decoration: none;
}
a:hover {
   color: #f43319;
}
p {
   margin: 0 0 20px;
}


input {
  outline: none;
}
input[type=buscar] {
 -webkit-appearance: textfield;
 -webkit-box-sizing: content-box;
 font-family: inherit;
font-size: 100%;
}
input: :-webkit-search-decoration,
input: :-webkit-search-cancel-button {
   display: none;
}


input[type=buscar] {
  background: #1213312
url(https://static.tumblr.com/ftv85bp/MIXmud4tx/search-icon.png) no-repeat 9px center;
    border: solid 1px #000;
   padding: 15px 85px 9px   19px;
  width: 100px;


     -webkit-border-radius: 10em;
     -moz-border-radius: 10em;
     border-radius: 10em;

    -webkit-transition: all .5s;
    -moz-transition: all .5s;
    transition: all .5s;
}

input[type=buscar]:focus {
  width: 50%;
  background-color: #fff;
  border-color: #66cc75;


       -webkit-box-shadow: 0 0 5px rbga(109,207,246,.5);
       -moz-box-shadow: 0 0 5px rbga(109,207,246,.5);
       box-shadow: 0 0 5px rbga(109,207,246,.5);
}

input:-moz-placeholder {
  color: #999;
}
 

</style>

Javascript

 <script type="text/javascript">
        
        		$(function() {
			load(1);
		});
		function load(page){
			var query=$("#q").val();
			var per_page=10;
			var parametros = {"action":"ajax","page":page,'query':query,'per_page':per_page};
			$("#loader").fadeIn('slow');
			$.ajax({
				url:'ajax/nome-do-arquivo.php',
				data: parametros,
				 beforeSend: function(objeto){
				$("#loader").html("Estamos fazendo a sua busca no banco de dados aguarde....");
			  },
				success:function(data){
					$(".outer_div").html(data).fadeIn('slow');
					$("#loader").html("");
				}
			})
		}
    </script>

É isso ai espero ter ajudado....

Compartilhar este post


Link para o post
Compartilhar em outros sites
  Em 02/11/2019 at 01:09, Jack Oliveira disse:

Boa noite

faz por ajax

segue o código

Config.php

<?php
$DB_HOST="localhost";
$DB_NAME= "root";
$DB_USER= "banco_de_dados";
$DB_PASS= "sua_senha";
$Tabela="sua_tabela_do_banco";


	# conectar o banco de dados
    $con=@mysqli_connect($DB_HOST, $DB_USER, $DB_PASS, $DB_NAME);
    if(!$con){
        die("impossível conectar: ".mysqli_error($con));
    }
    if (@mysqli_connect_errno()) {
        die("Falha na conexão: ".mysqli_connect_errno()." : ". mysqli_connect_error());
    }

?>

Arquivo da pasta ajax

<?php
//StatusSN
function StatusSN($Status){
    if ($Status == '1') {
        echo '<span class="btn btn-success active">Pago</span>';
    } elseif ($Status == '2') {
        echo '<span class="btn btn-warning active">Pendente</span>';
    } elseif ($Status == '3') {
        echo '<span class="btn btn-danger active">Não Pago</span>';
		}
}
	
	/* Conectar ao banco de dados*/

	require_once ("../conexion.php");

	
 	
mysqli_set_charset($con,"utf8");
	
$action = (isset($_REQUEST['action'])&& $_REQUEST['action'] !=NULL)?$_REQUEST['action']:'';
if($action == 'ajax'){
	$query = mysqli_real_escape_string($con,(strip_tags($_REQUEST['query'], ENT_QUOTES)));

	$tables="".$Tabela."";
	$campos="*";
	$sWhere="".$Tabela.".cliente LIKE '%".$query."%'  
	OR ".$Tabela.".email LIKE '%".$query."%'  
	OR ".$Tabela.".data LIKE '%".$query."%' 
	OR ".$Tabela.".valor LIKE '%".$query."%'  
	OR ".$Tabela.".status LIKE '%".$query."%' 
	OR ".$Tabela.".ultimaalteracao LIKE '%".$query."%'
	OR ".$Tabela.".metodo LIKE '%".$query."%'";
	$sWhere.=" order by ".$Tabela.".cliente";
	
	
	include 'pagination.php'; // inclui arquivo de paginação
// variáveis de paginação
	$page = (isset($_REQUEST['page']) && !empty($_REQUEST['page']))?$_REQUEST['page']:1;
	$per_page = intval($_REQUEST['per_page']); // quantos registros você deseja mostrar
	$adjacents  = 50; // intervalo entre as páginas após o número de adjacentes
	$offset = ($page - 1) * $per_page;
	
// Conte o número total de linhas na sua tabela * /
	$count_query   = mysqli_query($con,"SELECT count(*) AS numrows FROM $tables where $sWhere ");
	if ($row= mysqli_fetch_array($count_query)){$numrows = $row['numrows'];}
	else {echo mysqli_error($con);}
	$total_pages = ceil($numrows/$per_page);
	
// consulta principal para buscar os dados
	$query = mysqli_query($con,"SELECT $campos FROM  $tables where $sWhere LIMIT $offset,$per_page");
	
// percorre os dados buscados
	
$finales=0;

		
	
	if ($numrows>0){
		
	?>
	<html 	
<head lang="pt-br" class="no-js">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="robots" content="noindex" />
  <meta name="viewport" content="width=device-width, initial-scale=1">

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.0.0/jquery.min.js"></script>


<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-modal/0.9.1/jquery.modal.min.js"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/jquery-modal/0.9.1/jquery.modal.min.css" />

</head>	
	
  
		<div class="table-responsive">
	
			<table class="table table-striped table-hover">
									        <thead>
									            <tr>
									                	
									                <th>Id</th>
                                                    <th>Imagem</th>													
                                                    <th>Clientes</th>									                
													<th>E-mail</th>
									              	<th>Serviços</th>
									              	<th>Data</th>
													<th>Valor</th>
													<th>Método</th>
													<th>Status</th>
													<th>Data Edição</th>																										
													<th width="50%">Ações</th>
									              
									            </tr>
									        </thead>
				<tbody>	
						<?php 
						while($row_usuario  = mysqli_fetch_array($query)){	
							$id              = $row_usuario['id'];
							$cliente         = $row_usuario['cliente'];
							$email           = $row_usuario['email'];
							$servico         =$row_usuario['servico'];
							$data            =$row_usuario['data'];
							$valor           =$row_usuario['valor'];
							$metodo          =$row_usuario['metodo'];
							$status          =$row_usuario['status'];
                            $ultimaalteracao =$row_usuario['ultimaalteracao'];							
                            $fotos           =$row_usuario['fotos'];							
							$finales++;

						?>	
			<tr>
                      <td><img src="../foto/foto_pagamentos/<?php echo $row_usuario['fotos']; ?>" class="foto2"></td>
                      <td><?php echo $row_usuario['cliente']; ?></td>
                      <td><?php echo $row_usuario['email']; ?></td>
                      <td><?php echo $row_usuario['servico']; ?></td>
                      <td><?php echo $row_usuario['data']; ?></td>                     
                      <td>R$ <?php echo $row_usuario['valor']; ?></td>
                      <td><?php echo $row_usuario['metodo']; ?></td>
                      <td><?php echo StatusSN($row_usuario['status']); ?></td>
                      <td><?php echo $row_usuario['ultimaalteracao']; ?></td>
                      <td><div class="dropdown no-arrow">
                          <a class="dropdown-toggle" href="#" role="button" id="dropdownMenuLink" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
                        <i class="fas fa-ellipsis-v fa-sm fa-fw text-gray-600"></i>
                        </a>
                    <div class="dropdown-menu dropdown-menu-right shadow animated--fade-in" aria-labelledby="dropdownMenuLink">
                      <div class="dropdown-header">PAGAMENTOS:</div>
                      <a class="dropdown-item" href="criarpagamentos?id=<?php echo $row_usuario['id']; ?>">Criar Pagamentos</a>
                      <div class="dropdown-divider"></div>
                      <a class="dropdown-item" href="proc_apagar_pagamentos.php?id=<?php echo $row_usuario['id']; ?>">Apagar Pagamentos</a>
                    </div>
                  </div>
				  </td>


			</tr>
						<?php }?>
						<tr>
							<td colspan='6'> 
								<?php 
									$inicios=$offset+1;
									$finales+=$inicios -1;
									echo "Mostrando $inicios al $finales de $numrows registros";
									echo paginate( $page, $total_pages, $adjacents);
								?>
							</td>
						</tr>


				</tbody>			
			</table>

		</div>	


<?php
}

}


?>

Para fazer a paginação

<?php
function paginate($page, $tpages, $adjacents) {
	$prevlabel = "&lsaquo; Anterior";
	$nextlabel = "Proximo &rsaquo;";
	$out = '<ul class="pagination   pull-right">';
	
	// etiqueta anterior

	if($page==1) {
		$out.= "<li class='page-item disabled'><a>$prevlabel</a></li>";
	} else if($page==2) {
		$out.= "<li class='page-item'><a href='javascript:void(0);' onclick='load(1)'>$prevlabel</a></li>";
	}else {
		$out.= "<li class='page-item'><a href='javascript:void(0);' onclick='load(".($page-1).")'>$prevlabel</a></li>";

	}
	
	// primeiro rótulo
	if($page>($adjacents+1)) {
		$out.= "<li class='page-item'><a href='javascript:void(0);' onclick='load(1)'>1</a></li>";
	}
	// intervalo
	if($page>($adjacents+2)) {
		$out.= "<li class='page-item'><a>...</a></li>";
	}

	// Páginas

	$pmin = ($page>$adjacents) ? ($page-$adjacents) : 1;
	$pmax = ($page<($tpages-$adjacents)) ? ($page+$adjacents) : $tpages;
	for($i=$pmin; $i<=$pmax; $i++) {
		if($i==$page) {
			$out.= "<li class='active page-item'><a>$i</a></li>";
		}else if($i==1) {
			$out.= "<li class='page-item'><a href='javascript:void(0);' onclick='load(1)'>$i</a></li>";
		}else {
			$out.= "<li class='page-item'><a href='javascript:void(0);' onclick='load(".$i.")'>$i</a></li>";
		}
	}

	// intervalo

	if($page<($tpages-$adjacents-1)) {
		$out.= "<li class='page-item'><a>...</a></li>";
	}

	// Último

	if($page<($tpages-$adjacents)) {
		$out.= "<li class='page-item'><a href='javascript:void(0);' onclick='load($tpages)'>$tpages</a></li>";
	}

	// Próximo

	if($page<$tpages) {
		$out.= "<li class='page-item'><a href='javascript:void(0);' onclick='load(".($page+1).")'>$nextlabel</a></li>";
	}else {
		$out.= "<li class='disabled page-item'><a>$nextlabel</a></li>";
	}
	
	$out.= "</ul>";
	return $out;
}
?>

 

No seu arquivo que vai receber as buscas coloca isso

			<div class='col-sm-12 pull-right'>
			<div id="custom-search-input">
                            <div class="input-group col-md-12">
                                <input type="text" class="form-control" placeholder="Faça a sua busca aqui...."  id="q" onkeyup="load(1);" />
                                <span class="input-group-btn">
                                    <button class="btn btn-success" type="button" onclick="load(1);">
                                        <span class="glyphicon glyphicon-search"></span>
                                    </button>
                                </span>
                            </div>
                </div>
			</div>
			<div class='clearfix'></div>
			<hr>
			<center><div id="loader"></div></center><!-- Carga de datos ajax aqui -->
			<div id="resultados"></div><!-- Carga de datos ajax aqui -->
			<div class='outer_div'></div><!-- Carga de datos ajax aqui -->
            
			

Css para barra de busca

  <style type="text/css">
{
color: #666;
font: 90%/180% Arial, Helvetica, Sans-serif;
width: 800px;
max-width: 96%;
margin: 0 auto;
}
a {
 
  color: #69c;
text-decoration: none;
}
a:hover {
   color: #f43319;
}
p {
   margin: 0 0 20px;
}


input {
  outline: none;
}
input[type=buscar] {
 -webkit-appearance: textfield;
 -webkit-box-sizing: content-box;
 font-family: inherit;
font-size: 100%;
}
input: :-webkit-search-decoration,
input: :-webkit-search-cancel-button {
   display: none;
}


input[type=buscar] {
  background: #1213312
url(https://static.tumblr.com/ftv85bp/MIXmud4tx/search-icon.png) no-repeat 9px center;
    border: solid 1px #000;
   padding: 15px 85px 9px   19px;
  width: 100px;


     -webkit-border-radius: 10em;
     -moz-border-radius: 10em;
     border-radius: 10em;

    -webkit-transition: all .5s;
    -moz-transition: all .5s;
    transition: all .5s;
}

input[type=buscar]:focus {
  width: 50%;
  background-color: #fff;
  border-color: #66cc75;


       -webkit-box-shadow: 0 0 5px rbga(109,207,246,.5);
       -moz-box-shadow: 0 0 5px rbga(109,207,246,.5);
       box-shadow: 0 0 5px rbga(109,207,246,.5);
}

input:-moz-placeholder {
  color: #999;
}
 

</style>

Javascript

 <script type="text/javascript">
        
        		$(function() {
			load(1);
		});
		function load(page){
			var query=$("#q").val();
			var per_page=10;
			var parametros = {"action":"ajax","page":page,'query':query,'per_page':per_page};
			$("#loader").fadeIn('slow');
			$.ajax({
				url:'ajax/nome-do-arquivo.php',
				data: parametros,
				 beforeSend: function(objeto){
				$("#loader").html("Estamos fazendo a sua busca no banco de dados aguarde....");
			  },
				success:function(data){
					$(".outer_div").html(data).fadeIn('slow');
					$("#loader").html("");
				}
			})
		}
    </script>

É isso ai espero ter ajudado....

 

amigão eu não entendi (arquivo da pasta ajax) até porque eu ainda não mexi com o mesmo ! desculpa minha ignorância, poderia me montar esses arquivos e me enviar dentro de uma pasta só pra eu testar e analisar ?

Compartilhar este post


Link para o post
Compartilhar em outros sites
  Em 02/11/2019 at 01:09, Jack Oliveira disse:

<?php $DB_HOST="localhost"; $DB_NAME= "root"; $DB_USER= "banco_de_dados"; $DB_PASS= "sua_senha"; $Tabela="sua_tabela_do_banco"; # conectar o banco de dados $con=@mysqli_connect($DB_HOST, $DB_USER, $DB_PASS, $DB_NAME); if(!$con){ die("impossível conectar: ".mysqli_error($con)); } if (@mysqli_connect_errno()) { die("Falha na conexão: ".mysqli_connect_errno()." : ". mysqli_connect_error()); } ?>

aqui você vai criar um arquivo conexion.php

  Em 02/11/2019 at 01:09, Jack Oliveira disse:

<?php //StatusSN function StatusSN($Status){ if ($Status == '1') { echo '<span class="btn btn-success active">Pago</span>'; } elseif ($Status == '2') { echo '<span class="btn btn-warning active">Pendente</span>'; } elseif ($Status == '3') { echo '<span class="btn btn-danger active">Não Pago</span>'; } } /* Conectar ao banco de dados*/ require_once ("../conexion.php"); mysqli_set_charset($con,"utf8"); $action = (isset($_REQUEST['action'])&& $_REQUEST['action'] !=NULL)?$_REQUEST['action']:''; if($action == 'ajax'){ $query = mysqli_real_escape_string($con,(strip_tags($_REQUEST['query'], ENT_QUOTES))); $tables="".$Tabela.""; $campos="*"; $sWhere="".$Tabela.".cliente LIKE '%".$query."%' OR ".$Tabela.".email LIKE '%".$query."%' OR ".$Tabela.".data LIKE '%".$query."%' OR ".$Tabela.".valor LIKE '%".$query."%' OR ".$Tabela.".status LIKE '%".$query."%' OR ".$Tabela.".ultimaalteracao LIKE '%".$query."%' OR ".$Tabela.".metodo LIKE '%".$query."%'"; $sWhere.=" order by ".$Tabela.".cliente"; include 'pagination.php'; // inclui arquivo de paginação // variáveis de paginação $page = (isset($_REQUEST['page']) && !empty($_REQUEST['page']))?$_REQUEST['page']:1; $per_page = intval($_REQUEST['per_page']); // quantos registros você deseja mostrar $adjacents = 50; // intervalo entre as páginas após o número de adjacentes $offset = ($page - 1) * $per_page; // Conte o número total de linhas na sua tabela * / $count_query = mysqli_query($con,"SELECT count(*) AS numrows FROM $tables where $sWhere "); if ($row= mysqli_fetch_array($count_query)){$numrows = $row['numrows'];} else {echo mysqli_error($con);} $total_pages = ceil($numrows/$per_page); // consulta principal para buscar os dados $query = mysqli_query($con,"SELECT $campos FROM $tables where $sWhere LIMIT $offset,$per_page"); // percorre os dados buscados $finales=0; if ($numrows>0){ ?> <html <head lang="pt-br" class="no-js"> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <meta name="robots" content="noindex" /> <meta name="viewport" content="width=device-width, initial-scale=1"> <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.0.0/jquery.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-modal/0.9.1/jquery.modal.min.js"></script> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/jquery-modal/0.9.1/jquery.modal.min.css" /> </head> <div class="table-responsive"> <table class="table table-striped table-hover"> <thead> <tr> <th>Id</th> <th>Imagem</th> <th>Clientes</th> <th>E-mail</th> <th>Serviços</th> <th>Data</th> <th>Valor</th> <th>Método</th> <th>Status</th> <th>Data Edição</th> <th width="50%">Ações</th> </tr> </thead> <tbody> <?php while($row_usuario = mysqli_fetch_array($query)){ $id = $row_usuario['id']; $cliente = $row_usuario['cliente']; $email = $row_usuario['email']; $servico =$row_usuario['servico']; $data =$row_usuario['data']; $valor =$row_usuario['valor']; $metodo =$row_usuario['metodo']; $status =$row_usuario['status']; $ultimaalteracao =$row_usuario['ultimaalteracao']; $fotos =$row_usuario['fotos']; $finales++; ?> <tr> <td><img src="../foto/foto_pagamentos/<?php echo $row_usuario['fotos']; ?>" class="foto2"></td> <td><?php echo $row_usuario['cliente']; ?></td> <td><?php echo $row_usuario['email']; ?></td> <td><?php echo $row_usuario['servico']; ?></td> <td><?php echo $row_usuario['data']; ?></td> <td>R$ <?php echo $row_usuario['valor']; ?></td> <td><?php echo $row_usuario['metodo']; ?></td> <td><?php echo StatusSN($row_usuario['status']); ?></td> <td><?php echo $row_usuario['ultimaalteracao']; ?></td> <td><div class="dropdown no-arrow"> <a class="dropdown-toggle" href="#" role="button" id="dropdownMenuLink" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> <i class="fas fa-ellipsis-v fa-sm fa-fw text-gray-600"></i> </a> <div class="dropdown-menu dropdown-menu-right shadow animated--fade-in" aria-labelledby="dropdownMenuLink"> <div class="dropdown-header">PAGAMENTOS:</div> <a class="dropdown-item" href="criarpagamentos?id=<?php echo $row_usuario['id']; ?>">Criar Pagamentos</a> <div class="dropdown-divider"></div> <a class="dropdown-item" href="proc_apagar_pagamentos.php?id=<?php echo $row_usuario['id']; ?>">Apagar Pagamentos</a> </div> </div> </td> </tr> <?php }?> <tr> <td colspan='6'> <?php $inicios=$offset+1; $finales+=$inicios -1; echo "Mostrando $inicios al $finales de $numrows registros"; echo paginate( $page, $total_pages, $adjacents); ?> </td> </tr> </tbody> </table> </div> <?php } } ?>

este aqui você vai criar uma pasta ajax/nome-do-arquivo.php

 

  Em 02/11/2019 at 02:12, groudon900 disse:

<?php function paginate($page, $tpages, $adjacents) { $prevlabel = "&lsaquo; Anterior"; $nextlabel = "Proximo &rsaquo;"; $out = '<ul class="pagination pull-right">'; // etiqueta anterior if($page==1) { $out.= "<li class='page-item disabled'><a>$prevlabel</a></li>"; } else if($page==2) { $out.= "<li class='page-item'><a href='javascript:void(0);' onclick='load(1)'>$prevlabel</a></li>"; }else { $out.= "<li class='page-item'><a href='javascript:void(0);' onclick='load(".($page-1).")'>$prevlabel</a></li>"; } // primeiro rótulo if($page>($adjacents+1)) { $out.= "<li class='page-item'><a href='javascript:void(0);' onclick='load(1)'>1</a></li>"; } // intervalo if($page>($adjacents+2)) { $out.= "<li class='page-item'><a>...</a></li>"; } // Páginas $pmin = ($page>$adjacents) ? ($page-$adjacents) : 1; $pmax = ($page<($tpages-$adjacents)) ? ($page+$adjacents) : $tpages; for($i=$pmin; $i<=$pmax; $i++) { if($i==$page) { $out.= "<li class='active page-item'><a>$i</a></li>"; }else if($i==1) { $out.= "<li class='page-item'><a href='javascript:void(0);' onclick='load(1)'>$i</a></li>"; }else { $out.= "<li class='page-item'><a href='javascript:void(0);' onclick='load(".$i.")'>$i</a></li>"; } } // intervalo if($page<($tpages-$adjacents-1)) { $out.= "<li class='page-item'><a>...</a></li>"; } // Último if($page<($tpages-$adjacents)) { $out.= "<li class='page-item'><a href='javascript:void(0);' onclick='load($tpages)'>$tpages</a></li>"; } // Próximo if($page<$tpages) { $out.= "<li class='page-item'><a href='javascript:void(0);' onclick='load(".($page+1).")'>$nextlabel</a></li>"; }else { $out.= "<li class='disabled page-item'><a>$nextlabel</a></li>"; } $out.= "</ul>"; return $out; } ?>

Este aqui você pode colocar na propria pasta ajax se assim querer

ex: ajax/paginacao.php

  Em 02/11/2019 at 02:12, groudon900 disse:

<div class='col-sm-12 pull-right'> <div id="custom-search-input"> <div class="input-group col-md-12"> <input type="text" class="form-control" placeholder="Faça a sua busca aqui...." id="q" onkeyup="load(1);" /> <span class="input-group-btn"> <button class="btn btn-success" type="button" onclick="load(1);"> <span class="glyphicon glyphicon-search"></span> </button> </span> </div> </div> </div> <div class='clearfix'></div> <hr> <center><div id="loader"></div></center><!-- Carga de datos ajax aqui --> <div id="resultados"></div><!-- Carga de datos ajax aqui --> <div class='outer_div'></div><!-- Carga de datos ajax aqui -->

Este aqui você coloca numa div row do index.php do seu sistema ele vai trazer todos os resultados que estará a pasta ajax/nome-do-arquivo.php

entendeu?

  Em 02/11/2019 at 01:09, Jack Oliveira disse:

<style type="text/css"> { color: #666; font: 90%/180% Arial, Helvetica, Sans-serif; width: 800px; max-width: 96%; margin: 0 auto; } a { color: #69c; text-decoration: none; } a:hover { color: #f43319; } p { margin: 0 0 20px; } input { outline: none; } input[type=buscar] { -webkit-appearance: textfield; -webkit-box-sizing: content-box; font-family: inherit; font-size: 100%; } input: :-webkit-search-decoration, input: :-webkit-search-cancel-button { display: none; } input[type=buscar] { background: #1213312 url(https://static.tumblr.com/ftv85bp/MIXmud4tx/search-icon.png) no-repeat 9px center; border: solid 1px #000; padding: 15px 85px 9px 19px; width: 100px; -webkit-border-radius: 10em; -moz-border-radius: 10em; border-radius: 10em; -webkit-transition: all .5s; -moz-transition: all .5s; transition: all .5s; } input[type=buscar]:focus { width: 50%; background-color: #fff; border-color: #66cc75; -webkit-box-shadow: 0 0 5px rbga(109,207,246,.5); -moz-box-shadow: 0 0 5px rbga(109,207,246,.5); box-shadow: 0 0 5px rbga(109,207,246,.5); } input:-moz-placeholder { color: #999; } </style>

Este CSS você coloca onde vai esta o código que vai trazer os resultados da pasta ajax certo!!

  Em 02/11/2019 at 01:09, Jack Oliveira disse:

<script type="text/javascript"> $(function() { load(1); }); function load(page){ var query=$("#q").val(); var per_page=10; var parametros = {"action":"ajax","page":page,'query':query,'per_page':per_page}; $("#loader").fadeIn('slow'); $.ajax({ url:'ajax/nome-do-arquivo.php', data: parametros, beforeSend: function(objeto){ $("#loader").html("Estamos fazendo a sua busca no banco de dados aguarde...."); }, success:function(data){ $(".outer_div").html(data).fadeIn('slow'); $("#loader").html(""); } }) } </script>

Este você pode colocar no footer.php do seu sistema

fazendo tudo certo ai ele vai funcionar 100%

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por luiz monteiro
      Olá, tudo bem?
       
      Estou melhorando meu conhecimento em php e mysql e, me deparei com o seguinte. A tabela da base de dados tem um campo do tipo varchar(8) o qual armazena números. Eu não posso alterar o tipo desse campo. O que preciso é fazer um select para retornar o números que contenham zeros a direita ou a esquerda.
      O que tentei até agora
       
      Ex1
      $busca = $conexao->prepare("select campo form tabela where (campo = :campo) ");
      $busca->bindParam('campo', $_REQUEST['campo_form']);
       
      Se a direita da string $_REQUEST['campo_form'] termina ou inicia com zero ou zeros, a busca retorna vazio.
      Inseri dados numéricos, da seguinte maneira para testar: 01234567;  12345670: 12345678: 12340000... entre outros nessa coluna. Todos os valores que não terminam ou não iniciam com zero ou zeros, o select funciona.
       
       
      Ex2
      $busca = $conexao->prepare("select campo form tabela where (campo = 0340000) ");
      Esse número está cadastrado, mas não retorna.
       
      Ex3
      $busca = $conexao->prepare("select campo form tabela where (campo = '02340001' ) ");
      Esse número está cadastrado, mas não retorna.
       
       
      Ex4
      $busca = $conexao->prepare("select campo form tabela where (campo like 2340000) ");
      Esse número está cadastrado, mas não retorna.
       
      Ex5
      $busca = $conexao->prepare("select campo form tabela where (campo like '12340000') ");
      Esse número está cadastrado, mas não retorna.
       
      Ex6
      $busca = $conexao->prepare("select campo form tabela where (campo like '"12340000"' ) ");
      Esse número está cadastrado, mas não retorna.
       
       
      Ex7
      $busca = $conexao->prepare("select campo form tabela where (campo like :campo) ");
      $busca->bindParam('campo', $_REQUEST['campo_form'])
      Não retorna dados.
       
      O  $_REQUEST['campo_form'] é envio via AJAX de um formulário. 
      Usei o gettype para verificar o post, e ele retorna string.
      Fiz uma busca com número 12345678 para verificar o que o select retorna, e também retrona como string.
       
      Esse tipo de varchar foi usado porque os números que serão gravados nesse campo,  terão zeros a direita ou na esquerda. Os tipos number do mysql não gravam zeros, então estou usando esse. O problema é a busca.
      Agradeço desde já.
       
       
    • 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 daemon
      Boa tarde,
       
      Eu tenho uma rotina que faz uma leitura do arquivo .xml de vários sites.

      Eu consigo pegar o tópico e a descrição, e mostrar a imagem que esta na pagina do link.
      Para isso utilizo esta função:
      function getPreviewImage($url) { // Obter o conteúdo da página $html = file_get_contents($url); // Criar um novo objeto DOMDocument $doc = new DOMDocument(); @$doc->loadHTML($html); // Procurar pela tag meta og:image $tags = $doc->getElementsByTagName('meta'); foreach ($tags as $tag) { if ($tag->getAttribute('property') == 'og:image') { return $tag->getAttribute('content'); } } // Se não encontrar og:image, procurar pela primeira imagem na página $tags = $doc->getElementsByTagName('img'); if ($tags->length > 0) { return $tags->item(0)->getAttribute('src'); } // Se não encontrar nenhuma imagem, retornar null return null; } // Uso: $url = "https://example.com/article"; $imageUrl = getPreviewImage($url); if ($imageUrl) { echo "<img src='$imageUrl' alt='Preview'>"; } else { echo "Nenhuma imagem encontrada"; }  
      Mas estou com um problema, esta funcão funciona quando coloco em uma pagina de teste.php. Preciso mostrar em uma página inicial diversas fotos de todos os links. (No caso acima só funciona 1).
    • Por violin101
      Caros amigos, saudações.
       
      Por favor, me permita tirar uma dúvida com os amigos.

      Tenho um Formulário onde o Usuário digita todos os Dados necessários.

      Minha dúvida:
      --> como faço após o usuário digitar os dados e salvar, o Sistema chamar uma Modal ou mensagem perguntando se deseja imprimir agora ?

      Grato,
       
      Cesar
    • Por Carcleo
      Tenho uma abela de usuarios e uma tabela de administradores e clientes.
      Gostaria de uma ajuda para implementar um cadastro
       
      users -> name, login, passord (pronta) admins -> user_id, registratiom, etc.. client -> user_id, registratiom, etc...
      Queria ajuda para extender de user as classes Admin e Client
      Olhem como estáAdmin
      <?php namespace App\Models; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; class Admin extends User {     use HasFactory;            protected $fillable = [         'name',         'email',         'password',         'registration'     ];      private string $registration;     public function create(         string $name,          string $email,          string $password,         string $registration     )     {         //parent::create(['name'=>$name, 'email'=>$email, 'password'=>$password]);         parent::$name = $name;         parent::$email = $email;         parent::$password = $password;         $this->registration = $registration;     } } User
      <?php namespace App\Models; // use Illuminate\Contracts\Auth\MustVerifyEmail; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Foundation\Auth\User as Authenticatable; use Illuminate\Notifications\Notifiable; use Illuminate\Database\Eloquent\Relations\BelongsToMany; class User extends Authenticatable {     /** @use HasFactory<\Database\Factories\UserFactory> */     use HasFactory, Notifiable;     static string $name;     static string $email;     static string $password;     /**      * The attributes that are mass assignable.      *      * @var list<string>      */     protected $fillable = [         'name',         'email',         'password',     ];          /**      * The attributes that should be hidden for serialization.      *      * @var list<string>      */     protected $hidden = [         'remember_token',     ];     /**      * Get the attributes that should be cast.      *      * @return array<string, string>      */     protected function casts(): array     {         return [             'email_verified_at' => 'datetime',             'password' => 'hashed',         ];     }          public function roles() : BelongsToMany {         return $this->belongsToMany(Role::class);     }       public function hasHole(Array $roleName): bool     {                 foreach ($this->roles as $role) {             if ($role->name === $roleName) {                 return true;             }         }         return false;     }         public function hasHoles(Array $rolesName): bool     {                 foreach ($this->roles as $role) {             foreach ($rolesName as $rolee) {             if ($role->name === $rolee) {                 return true;             }          }         }         return false;     }         public function hasAbility(string $ability): bool     {         foreach ($this->roles as $role) {             if ($role->abilities->contains('name', $ability)) {                 return true;             }         }         return false;     }     } Como gravar um Admin na tabela admins sendo que ele é um User por extensão?
      Tentei assim mas é claro que está errado...
      public function store(Request $request, Admin $adminModel) {         $dados = $request->validate([             "name" => "required",             "email" => "required|email",             "password" => "required",             "registration" => "required"         ]);         $dados["password"] =  Hash::make($dados["password"]);                  $admin = Admin::where("registration",  $dados["registration"])->first();                  if ($admin)              return                    redirect()->route("admin.new")                             ->withErrors([                                 'fail' => 'Administrador já cadastrados<br>, favor verificar!'                   ]);                            $newAdmin = $adminModel->create(                                    $dados['name'],                                    $dados['email'],                                    $dados['password'],                                    $dados['registration']                                 );         dd($newAdmin);         $adminModel->save();         //$adminModel::create($admin);                  return redirect()->route("admin.new")->with("success",'Cadastrado com sucesso');     }  
×

Informação importante

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