Pregunta:
Fecha: 04-10-2015 06:56:04
(En Español)
Código Jquery:
Código PHP
No me mustra los resultados :( Votos: 0 - Respuestas: 12 - Vistas: 16 Compartir en: Google Facebook Twitter LinkedIn Link
Ayuda con Buscador PHP, MYSQL, JQUERY[Resuelta]
Hola tengo un buscador para el sistema de libros pero tengo un problema y no lo he podido solucionar.Código Jquery:
$(document).ready(function(){
var consulta;
//hacemos focus al campo de búsqueda
$("#buscar_editar").focus();
//comprobamos si se pulsa una tecla
$("#buscar_editar").keyup(function(e){
//obtenemos el texto introducido en el campo de búsqueda
consulta = $("#buscar_editar").val();
//hace la búsqueda
$.ajax({
type: "POST",
url: "../buscar.php?page=editar_buscar&",
data: "b="+consulta,
dataType: "html",
beforeSend: function(){
//imagen de carga
$("#resultado").html("<p align='center'><img src='../../img/ajax-loader.gif' /></p>");
},
error: function(){
alert("error petición ajax");
},
success: function(data){
$("#resultado").empty();
$("#resultado").append(data);
}
});
});
});
Código PHP
<?
include "../includes/config.php";
$buscar = $_POST['b'];
switch ($_GET["page"]) {
case 'editar':
if(!empty($buscar)) {
buscar($link, $buscar);
}
function buscar($db, $b) {
$sql = mysqli_query($db, "SELECT * FROM libros WHERE titulo LIKE '%$b%'");
$contar = mysqli_num_rows($sql);
if($contar == 0){
echo "No se han encontrado resultados para '<b>".$b."</b>'.";
}else{
while($row=mysqli_fetch_array($sql)){
$titulo = $row['titulo'];
$estado = $row['estado'];
echo $titulo." - ".$estado."<br /><br />";
}
}
}
break;
?>
No me mustra los resultados :( Votos: 0 - Respuestas: 12 - Vistas: 16 Compartir en: Google Facebook Twitter LinkedIn Link
Respuestas:
-
Fecha: 04-10-2015 10:15:26 Edinson
Buenas tardes
Olvidaste poner el problema ...
Un saludo
Daniel Votos: 0 - Link respuesta -
Fecha: 04-10-2015 10:47:57 mmmm a simple vista, me parece que estas utilizando los 2 metodos POST y GET
en type: "POST",
prueba con type: "GET",
y luego en el segundo codigo $buscar = $_POST['b'];
por $buscar = $_GET['b'];
y creo que hay otros errores
deberias proba de hacer que el segundo archivo muestre los valores que recibe
para ir resolviendo de apoco los errores
por otro lado seria bueno que publiques el codigo completo del primer script a fin de poder hacer algunas pruebas
saludos Votos: 2 - Link respuesta -
Fecha: 05-10-2015 03:25:07 Para facilitar las cosas, PHP tiene el método $_REQUEST Votos: 3 - Link respuesta
-
Fecha: 05-10-2015 04:09:20 Artzain:
Buena respuesta, para recuperar una variable no importar si es GET o POST se puede usar REQUEST.
Pero no me parece una buena practica, ya que si envias 2 variables con distintos METODOS, existe la posibilidad del ERROR y podrias llegar a pasar por la URL informacion no conveniente.
Lo ideal, al pan pan y al vino vino ... GET recupero con GET o REQUEST y POST recupero con POST o REQUEST, salvo que estes muy seguro y el codigo muy revisado para recuperar con REQUEST simultaneamente ambos metodos (GET y POST).
Un saludo a todos
Daniel Votos: 2 - Link respuesta -
Fecha: 05-10-2015 04:55:48 Creo que sería mejor no utilizar los globales como por ejemplo REQUEST por una cuestión de seguridad. Votos: 2 - Link respuesta
-
Fecha: 05-10-2015 05:00:10 Ya se cual es el error. Al enviar el ajax, en el parámetro page le estas mandando "editar_buscar" mientras que en PHP en el switch de la variable page, le estas diciendo que debe de ser "editar", por eso nunca esta entrando a hacer el código que viene en ese case.
También te recomendaría sacar la función "buscar()" del case y dejarla por fuera del código del switch o del código de otras funciones. Más que nada porque luego tendrías problemas si quieres utilizar esa función en otros case, o en otra parte del código. Votos: 3 - Link respuesta -
Fecha: 05-10-2015 19:31:35 Israel tienes toda la razón gracias no había visto eso por ahora la cambio a resuelta algún cambio lo público en esta entrada. XD Votos: 0 - Link respuesta
-
Fecha: 16-10-2015 11:20:57 Tu estas comparando
tu variable
switch ($_GET["page"]) { case 'editar': }
con la palabra editar pero si te fijas bien tu en tu metodo ajax estas enviando esto
url: "../buscar.php?page=editar_buscar&",
osea el page es "editar_buscar"
lo cual en tu case de tu switch deberia ser asi
case 'editar_buscar':
solo corrige eso y listo no te devuelve dato por q no entra el case porque tu estas comparando con editar
cuando deberia ser con editar_buscar Votos: 2 - Link respuesta -
Fecha: 16-10-2015 23:02:19 Sería bueno que quites el & ya que solo estas enviando una variable en si no afecta en nada pero se ve innecesario que pongas el & cuando sólo pasas una variable por URL
URL:"../buscar.php?page=editar_buscar&"
saludo Votos: 2 - Link respuesta -
Fecha: 17-10-2015 05:27:39 Hola envió dos variables que es page y b que es el valor a buscar Votos: 0 - Link respuesta
-
Fecha: 17-10-2015 06:32:12 Si pero el b se está enviando por el método post ya no es necesario el & recuerda q el & se utiliza cuando quieres seguir enviando más variable quitalo y veras q sigue funcionando tu código saludos Votos: 1 - Link respuesta
-
Para participar activamente de la comunidad primero debes autenticarte, ingresa al sistema.Iniciar Sesión
