Hola!
Tengo el siguiente problema, curioso. Para un buscador de mi página tengo el siguiente formulario:
Código HTML:
<form name="buscar" id="buscador" action="busca.php" method="GET">
<input type="text" size="50" value="" name="frase" />
<input type="submit" name="buscar" id="buscar" value="Buscar" />
</form>
que va a busca.php
Código PHP:
<?
if(isset($_GET['buscar']) && $_GET['buscar'] == 'Buscar') {
include("config.php");
require_once "PHPPaging.lib.php";
$frase = addslashes($_GET['frase']);
$num_car = strlen($frase);
// hacemos la consulta de busqueda
mysql_query("SET NAMES utf8");
$sqlBuscar = "SELECT id, titulo, grupo, autor, estado, otros, direccion, reparto, sinopsis,
MATCH (titulo, grupo, autor, estado, otros, direccion, reparto, sinopsis)
AGAINST ('$frase' IN BOOLEAN MODE) AS coincidencias
FROM obras07
WHERE MATCH (titulo, grupo, autor, estado, otros, direccion, reparto, sinopsis)
AGAINST ('$frase' IN BOOLEAN MODE)
ORDER BY coincidencias DESC";
$query = mysql_db_query($db,$sqlBuscar,$link) or die(mysql_error());
$totalRows = mysql_num_rows($query);
// Enviamos un mensaje
// indicando la cantidad de resultados ($totalRows)
// para la frase busada ($frase)
if(!empty($totalRows)){
$paging = new PHPPaging;
$paging->porPagina(12);
$paging->agregarConsulta($sqlBuscar);
$paging->mantenerVar("frase", "buscar");
$paging->nombreVariable("pagina");
$paging->linkSeparador(' - ');
$paging->paginasAntes(10);
$paging->paginasDespues(10);
$paging->linkClase("paginacion");
$paging->ejecutar();
$links = $paging->fetchNavegacion();
echo stripslashes("<p class=\"cantidad\"><strong>$totalRows</strong> resultados para <strong>$frase</strong><br />");
echo "Mostrando <strong>".$paging->numRegistrosMostrados()."</strong> por página de un total de <strong>".$paging->numTotalRegistros()."</strong></p>";
if($paging->numTotalPaginas() >= 2) {
echo "<div id=\"paginas\">$links</div>";
}
echo "<ul id=\"listado_obras\">";
while($row = $paging->fetchResultado()){
echo "<li><a href='ficha.php?id=$row[id]'>$row[titulo]</a><br />";
echo "<strong>Grupo: </strong>$row[grupo]<br />";
echo "<strong>Estado: </strong>$row[estado]<br />";
echo "<em>Coincidencias: ". round($row['coincidencias']) ."</em>";
echo "</li>";
}
echo "</ul>";
}
// si se ha enviado vacio el formulario
// mostramos un mensaje del tipo Oops...!
elseif(empty($_GET['frase'])){
echo "<p>Debe introducir una palabra o frase.</p>";
}
elseif($num_car < 4) {
echo "<p>La busqueda debe tener más de 3 caracteres</p>";
}
// si no hay resultados
// otro mensaje del tipo Oops...!
elseif($totalRows == 0){
echo stripslashes("<p>Su búsqueda no arrojo resultados para <strong>$frase</strong></p>");
}
}
?>
todo funciona perfecto en Opera, IE y Firefox PERO, en IE si, en lugar de presionar el boton, se le da enter, la variable buscar=Buscar no se crea y entonces el busca.php no lanza ningun resultado ni ningun error.
en la url debería de verse asi: busca.php?frase=ford&buscar=Buscar
pero solo se ve busca.php?frase=ford
repito, eso solo pasa en IE cuando se pulsa enter, en todos los demas nav. va perfecto.
alguna solucion?
gracias.