Foros del Web » Programando para Internet » PHP »

Problema con PHP y Formularios

Estas en el tema de Problema con PHP y Formularios en el foro de PHP en Foros del Web. Tengo un problema con un formulario de búsqueda simple y PHP. Si se aprieta el botón "Buscar" del formulario, utilizando el mouse, la búsqueda se ...
  #1 (permalink)  
Antiguo 06/08/2002, 20:45
Avatar de sci-fi  
Fecha de Ingreso: marzo-2002
Mensajes: 157
Antigüedad: 15 años, 9 meses
Puntos: 0
Problema con PHP y Formularios


Tengo un problema con un formulario de búsqueda simple y PHP. Si se aprieta el botón "Buscar" del formulario, utilizando el mouse, la búsqueda se activa y está todo bien. Pero si se hace mediante la tecla "Enter", la búsqueda no se activa, es como si PHP no tomara como seteada la variable que indica que el formulario fue enviado. A qué se puede deber esto?

Se puede ver qué es lo que pasa en <a href='ir.asp?http://www.ccr.org.ar/ccr_videoteca.php' target='_blank'>http://www.ccr.org.ar/ccr_videoteca.php...</a>, el formulario está al pie, es una búsqueda sumamente sencilla, que hago con wildcards en las queries. Si el formulario se envía, sencillamente cambio la var de query. No hay problemas en el código, ya que si se pulsa el mouse la búsqueda funciona y no hay errores. No tengo mucha experiencia con forms en PHP pero este error me parece extraño. Quizá haya que añadir un pequeño código especial para el caso de que el formulario se envíe con la tecla Enter?

Gracias,

SCi-FI
  #2 (permalink)  
Antiguo 06/08/2002, 21:09
 
Fecha de Ingreso: septiembre-2001
Ubicación: Monterrey
Mensajes: 663
Antigüedad: 16 años, 2 meses
Puntos: 6
Re: Problema con PHP y Formularios

Bastante raro, probe con dos navegadores y obtuve el mismo resultado, pero cuando hay casos extra~os, lo mejor que puedes hacer es un echo de las variables, implicadas y prueba que valor te arrojan mediante las dos condiciones es decir usando el boton y sin el.
Y nos comentas como te fue ya que asi como lo planteas esta un poco dificil darte un diagnostico.

Saludos!.
Mty. NL.
  #3 (permalink)  
Antiguo 06/08/2002, 21:33
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Re: Problema con PHP y Formularios

No se porque .. pero parace problemilla con el foco del boton q se pierde ...

Hice una prueba ..
* Puse algo en apartado de busqueda y le di al boton con el ratón .. ahi todo ok ..

* Puse algo otra vez .. (para ello me posicione en el campo buscar con el raton) .. escribi .. le di al enter y nada . no funciono tal cual comentas ..

* Y la ultima ..
Puse algo en el campo buscar . igual q la ultima vez .. pero ahora antes de darle al intro busque el foco del boton con el tabulador (hasta q me marcó el boton) .. ahi le di al Enter y funcionó OK ...

Te recomiendo q veas algo de javascript en concreto sobre el tema de changefocus .. o algo asi al evento onClick .. pero bueno eso es problema de los navegadores y javascript mas q de PHP ... creo yo ...

Testeado con IE 5.5 (W98) ..

Un saludo,
  #4 (permalink)  
Antiguo 08/08/2002, 02:49
Avatar de sci-fi  
Fecha de Ingreso: marzo-2002
Mensajes: 157
Antigüedad: 15 años, 9 meses
Puntos: 0
Re: Problema con PHP y Formularios

Muchas gracias!, Herminio Heredia San, Cluster,

y perdón si tardé en contestar, es que tengo medio restringido el acceso a la net porque en mi pc no tengo y tengo que usar otra...

Bueno, pensé que era algo sencillo pero aparentemente no, es algo medio raro...

Ya probé darle salida a las variables, con $HTTP_POST_VARS, y me salen bien las variables, son tres (en un array), el texto de búsqueda, si están o no las checkboxes (por director o por titulo), y $submit a &quot;Buscar&quot; (que es el texto del botón). Pero ése no es el problema. Tal parece que al buscar con la tecla Enter, $submit da undefined, por lo tanto, no se ejecuta la búsqueda. Admito que el código no es de lo más estándar que hay, el código hace esto; chequea con un if -&gt; if (isset($submit)) , si eso da true, le da una definición a la variable de query, -&gt; $tbquer = mysql_query(CONSULTA DE BUSQUEDA), si da false, entonces hace una query a una tabla donde selecciona todo. Si $submit está, $tbQUER es una consulta con wildcards (SELECT tanto FROM tanto WHERE tanto LIKE &quot;%tanto%&quot;).

El problema es que apretando ENTER, no me sirve darle salida a $HTTP_POST_VARS y eso porque sencillamente $submit es undefined. Lo que me pregunto es si será problema del navegador, y solucionarlo con JavaScript, o será un problema del código mío. Quizá una solución sería usar GET en lugar de POST pero ya probé y medio como que era más engorroso.

Creo que tienes razón, Cluster, ahora que releo lo que me amablemente me comentas... Claro! Me parece que me diste la solución. Quizá podría agregarle un código javascript que haga un onSubmit sobre el formulario, se puede adjuntarle un método .focus() al botón. O sea, onSubmit para el formulario, que se dispare Buscar.focus()... Pruebo con eso y les comento cómo me fue...

Muchas gracias, y saludos,

SCi-FI
  #5 (permalink)  
Antiguo 08/08/2002, 09:50
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Re: Problema con PHP y Formularios

Efectivamente .. parece ser q ese es el problema .. es mas .. aqui te pongo el codigo q vi en una pagina .. hace eso mismo mediante javascrip . le pone el foco

Código:
&lt;table&gt;
								&lt;tr&gt;
								&lt;td align=&quot;right&quot; class=&quot;negro&quot;&gt;Contraseña:&lt;/td&gt;
								&lt;td&gt;&lt;input type=&quot;password&quot; name=&quot;pwd&quot; size=&quot;20&quot; maxlength=&quot;20&quot;&gt;&lt;/td&gt;
								&lt;/tr&gt;
								&lt;tr&gt;
								&lt;td&gt;&lt;/td&gt;&lt;td&gt;&lt;input type=&quot;submit&quot; name=&quot;modo&quot; value=&quot;Entrar&quot;&gt;&lt;/td&gt;
								&lt;/tr&gt;
								&lt;/table&gt;
								&lt;/form&gt;
								&lt;SCRIPT language=&quot;javascript&quot;&gt;
								&lt;!--
								document.forms[0].pwd.focus()
								//--&gt;
								&lt;/SCRIPT&gt;
	
								&lt;/td&gt;
							  &lt;/tr&gt;
							&lt;/table&gt;
De objetos javascript no entiene mucho .. pero parece ser que esto lo resuelve.

Un saludo,
  #6 (permalink)  
Antiguo 08/08/2002, 19:30
Avatar de sci-fi  
Fecha de Ingreso: marzo-2002
Mensajes: 157
Antigüedad: 15 años, 9 meses
Puntos: 0
Re: Problema con PHP y Formularios


Sí, probé con eso, pero funcionó sólo a medias. A veces sí y a veces no... y sin causa lógica, parecía que cuando no había resultados de búsqueda no funcionaba, y cuando sí los había, funcionaba bien. O sea, algo loco. Cuando no había resultados de búsqueda, no ponía &quot;No hay resultados&quot;, sino que evaluaba $submit a undefinded (!), o sea, listaba todo.

Puse este código en la tag &lt;form&gt;:
&lt;form etc onSubmit=&quot;submit.focus()&quot;&gt;...

Es medio anticuado pero funciona. submit es el nombre del botón de tipo submit.

Tengo la sospecha de que esto es un problema de $PHP_SELF y los navegadores. Si mal no recuerdo, Netscape 6.0 creo que tiene problemas a veces de no resolver $PHP_SELF. Yo uso $PHP_SELF en la &quot;action&quot; de la form. Así que finalmente lo solucioné con un truco que parece que me da resultados, aunque no es lo mejor:

action=&quot;&lt;?php echo $PHP_SELF . &quot;?submit=Buscar&quot;; ?&gt;&quot;

Le agrego $submit como variable GET en url para el destino del formulario, así me aseguro de que $submit siempre esté seteada. &quot;Buscar&quot; es el valor del botón, y PHP lo toma como el valor de la variable.

Así con estas dos cosas parece que se solucionó. Muchísimas gracias, Cluster, por tomarte el trabajo de mostrarme ese código... Y también gracias Herminio Heredia San...

Nos vemos, saludos,

SCi-FI
[el Freak de la ciencia-ficción]
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 04:48.