Boton solo me funciona con click

Iniciado por teudiss, 19 Marzo 2010, 12:07 PM

0 Miembros y 1 Visitante están viendo este tema.

teudiss

Hola, cuando hago click en el boton si funciona pero cuando pulso enter no funciona, he visto que hay un script en javascript para solucionarlo, pero se puede solucionar con codigo php ?

Os muestro el codigo, es para buscar una cadena de texto en una tabla.

buscar.php
Citar
<form id="form1" method="post" action="busqueda.php">
<input name="palabra" type="text" id="palabra" />
<input name="buscador" type="submit" id="buscador" value="Buscar" />

</form>

busqueda.php

Citarif ($_POST['buscador'])
{  

$buscar = $_POST['palabra'];


if(empty($buscar))
{
echo "No se ha ingresado una cadena a buscar";
}else{
// Conexión a la base de datos y seleccion de registros
$con=mysql_connect("localhost", "root", "torero");
$sql = "SELECT * FROM alumnos WHERE chicos like '%$buscar%' ORDER BY id DESC";
mysql_select_db("colegio", $con);  

$result = mysql_query($sql, $con);  


$total = mysql_num_rows($result);

// Imprimimos los resultados
if ($row = mysql_fetch_array($result)){  
echo "Resultados para: <b>$buscar</b>";
do {  




} while ($row = mysql_fetch_array($result));  
echo "<p>Resultados: $total</p>";
} else {  
// En caso de no encontrar resultados
echo "No se encontraron resultados para: <b>$buscar</b>";  
}
}
}
?>

Castg!

Código (html4strict) [Seleccionar]

<head>
<script type="text/javascript">
function submit(flota) {
   evento = window.event;
   if(evento.keycode==13) {
      flota.submit();
   }
}
</script>
<form id="form1" method="post" action="busqueda.php" onkeypress="submit(this.form);">
<input name="palabra" type="text" id="palabra" />
<input name="buscador" type="submit" id="buscador" value="Buscar" />
</form>


eso te sirve4??

teudiss

Cita de: Castg! en 19 Marzo 2010, 13:58 PM
Código (html4strict) [Seleccionar]

<head>
<script type="text/javascript">
function submit(flota) {
   evento = window.event;
   if(evento.keycode==13) {
      flota.submit();
   }
}
</script>
<form id="form1" method="post" action="busqueda.php" onkeypress="submit(this.form);">
<input name="palabra" type="text" id="palabra" />
<input name="buscador" type="submit" id="buscador" value="Buscar" />
</form>


eso te sirve4??
Pues no lo se, por que cuando ejecuta un script de este tipo el navegador muestra un mensaje para que acepte o algo asi, por eso preguntaba si es posible en php.

Castg!

no:S en php va a ser imposbile ya que eso se ejecuta en el servidor y no en el cliente, ademas, el php se ejecuta y devuelve, una vez que devuelve (se muestra la pagina en el cliente) el servidor deja de interactuar. igualmente el codigo que yo te di no es generalizado para todos los navegadores.

teudiss

Hola, ya me funciona es omitiendo esta linea:
Citarif ($_POST['buscador'])


$buscar = $_POST['palabra'];


if(empty($buscar))
{


Por esta otra, es decir quitarle el valor al boton

Citarif  isset($_POST['palabra']) && !empty($_POST['palabra']))


Gracias por todo.


~ Yoya ~

Código (php) [Seleccionar]
if  isset($_POST['palabra']) && !empty($_POST['palabra']))

Que haces man jajaja, con esto basta:
Código (php) [Seleccionar]

if(!empty($_POST['palabra']))
Mi madre me dijo que estoy destinado a ser pobre toda la vida.
Engineering is the art of balancing the benefits and drawbacks of any approach.

teudiss

Cita de: Castg! en 20 Marzo 2010, 13:46 PM
solo por eso? :o

Si, el boton no tiene que tener valor alguno.

Citarif  isset($_POST['palabra']) && !empty($_POST['palabra']))

Que haces man jajaja, con esto basta:
Código
if(!empty($_POST['palabra']))

Si, cierto, no se por que lo puse asi.

haxple

Cita de: teudiss en 19 Marzo 2010, 12:07 PM


busqueda.php

Citar

$buscar = $_POST['palabra'];


$sql = "SELECT * FROM alumnos WHERE chicos like '%$buscar%' ORDER BY id DESC";

SQL Injection my friend.. Mas cuidadoso :)

Saludos
What does your conscience say? — "You shall become the person you are."

WHK

Código (php) [Seleccionar]
$sql = "
SELECT * FROM alumnos
WHERE chicos like '%".
str_replace('%', '\\%', mysql_real_escape_string($buscar)).
"%' ORDER BY id DESC
";


Recuerda que alguien puede insertar un carácter % y causar una denegación de servicio por agotamiento de recursos al intentar volcar toda la tabla de contenido de alumnos si esta es demasiada extensa.

Te recomiendo también hacer un paginador para que le pongas un ímite a la busqueda porque igual alguien puede insertar una letra común como una "a" y volcar tantos resultados que tu servidor quedará a merced de cualquier atacante.