Nueva pregunta

Pregunta:

Fecha: 04-10-2015 06:56:04 (En Español)

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 :(
Etiquetas: Javascript - JQuery - MySQL - PHP - PHP MySQLi - Pregunta 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
     
  • Fecha: 17-10-2015 07:38:09 Tienes razón gracias   Votos: 0 - Link respuesta
     
Para participar activamente de la comunidad primero debes autenticarte, ingresa al sistema.Iniciar Sesión
 
frjcbbae garagebible.com