Ir al contenido


Foto

Formulario HTML + PHP no funciona en Firefox pero sí funciona en Chrome


  • Por favor identifícate para responder
3 respuestas en este tema

#1 jonbra

jonbra

    Advanced Member

  • Miembros
  • PipPipPip
  • 57 mensajes

Escrito 13 diciembre 2013 - 12:01

Estoy creando un panel de administrador donde puedo publicar unas etiquetas para un contenido y las opciones que le estoy dando son las de publicar, editar y borrar las etiquetas.

El problema es que el formulario funciona perfecto en Chrome, pero en Firefox solo funciona la opción de insertar nuevas etiquetas. No entiendo el por qué de este problema. He revisado si los nombres de los input son correctos, si hay algún error y no lo he encontrado. No llega a entrar en el condicional elseif (isset($_POST['edit_typequestion'])) y no entiendo por qué :s

este es mi código

Html.php contiene solamente HTML y bucles for para recorrer arrays

Es un código simple, donde al admin se le presentan un título: "Etiquetas en la BD" y a continuación el texto de la etiqueta y dos opciones: Borrar o Editar.

La función más abajo se cargaría si el admin pulsara sobre editar la etiqueta.


delphi
  1. /*
  2. * html para formulario por defecto de typequestion
  3. */
  4.  
  5. function html_menu_typequestion($typequestion)
  6. {
  7.     ?>
  8.     <!-- formulario para introducir tipos de preguntas -->
  9.         <form method="post" action="adminapp.php?option=settypequestion">
  10.             <!-- campo para introducir el texto del tipo de pregunta -->
  11.             <p>
  12.             Tipo de pregunta
  13.             <input type="text" name="settypequestion">
  14.             <input type="submit" name="sendtypequestion">
  15.             </p>
  16.         </form>
  17.         <p>Tipos de preguntas en la BD</p>
  18.         <?php
  19.         foreach ( $typequestion as $typequestion )
  20.         {
  21.             ?>
  22.             <div>
  23.                     <?php echo $typequestion['typequestion'];  ?>
  24.                 <div>
  25.                     <form method="post" action="adminapp.php?option=settypequestion">
  26.                     <input type="image" src="../images/cancel.button.png"
  27.                     name="delete_typequestion" value="<?php echo $typequestion['id_typequestion']; ?>"
  28.                     title="Borrar" />
  29.                     </form>
  30.                 </div>
  31.                 <div>
  32.                 <?php //var_dump($result['id_typequestion']); ?>
  33.  
  34.                     <form method="post" action="adminapp.php?option=settypequestion">
  35.                     <input type="image" src="../images/write.button.png"
  36.                     name="edit_typequestion" value="<?php echo $typequestion['id_typequestion']; ?>"
  37.                     />
  38.                     </form>
  39.                 </div>
  40.             </div>
  41.             <?php
  42.         }
  43. }
  44.  
  45. /*
  46. * html para el edit typequestion
  47. */
  48.  
  49. function html_menu_edit_typequestion($typequestion, $id_typequestion)
  50. {
  51.     ?>
  52.     <!-- formulario para editar tipos de preguntas -->
  53.         <form method="post" action="adminapp.php?option=settypequestion">
  54.             <!-- campo para introducir el texto del tipo de pregunta -->
  55.             <p>
  56.             Tipo de pregunta
  57.             <input type="text" name="update_typequestion" value="<?php echo $typequestion;?>">
  58.             <input type="submit" name="send_update_typequestion" value="Editar">
  59.             <input type="hidden" name="id_edit_typequestion"
  60.             value="<?php echo $id_typequestion; ?>"/>
  61.             </p>
  62.         </form>
  63.         <form method="post" action="adminapp.php?option=settypequestion" >
  64.             <input type="submit" value="Cancelar Edición" />
  65.         </form>
  66.     <?php
  67. }



Html_public.php controla los eventos del admin y carga el anterior documento para presentar contenido al admin según si está identificado como admin y según lo que pulse.



delphi
  1. /*
  2. * carga el menu controlador de los tipos de preguntas
  3. */
  4. function print_menu_typequestion()
  5. {
  6.     if(check_session()=== TRUE)
  7.     {
  8.         if ( isset($_GET['option']) && $_GET['option'] == 'settypequestion' )
  9.         {
  10.         //si el usuario presiona sobre borrar
  11.         if ( isset( $_POST['delete_typequestion'] ) )
  12.         {
  13.         deletetypequestion( $_POST['delete_typequestion'] );
  14.         header ("Location: ". $_SERVER['REQUEST_URI'] ."");
  15.         }
  16.        
  17.         //si el usuario presiona sobre editar ### Es aquí, en este condicional donde no llega a entrar, en chrome funciona pero en firefox no :S
  18.                 // se que no entra porque el return lo he cambiado por un simple "hola", y no me muestra el hola.
  19.         elseif ( isset( $_POST['edit_typequestion'] ) )
  20.         {
  21.         $edit = edittypequestion ( $_POST['edit_typequestion'] );
  22.                 return html_menu_edit_typequestion($edit['typequestion'], $edit['id_typequestion']);
  23.         }
  24.        
  25.         //si el usuario edita
  26.         elseif ( isset( $_POST['update_typequestion'] ) )
  27.         {
  28.         updatetypequestion2( $_POST['update_typequestion'], $_POST['id_edit_typequestion'] );
  29.                 header ("Location: ". $_SERVER['REQUEST_URI'] ."");
  30.         }
  31.        
  32.         //si el usuario envia un nuevo tipo de pregunta
  33.         elseif ( isset ( $_POST['settypequestion'] ) && $_POST['settypequestion'] !== '' )
  34.         {
  35.         settypequestion( $_POST['settypequestion'] );
  36.                 header ("Location: ". $_SERVER['REQUEST_URI'] ."");
  37.         }
  38.        
  39.         //sino se cargan los formularios por defecto
  40.         else
  41.         {
  42.             $gettypequestion = gettypequestion();
  43.                
  44.                 return html_menu_typequestion($gettypequestion);
  45.             }
  46.         }
  47.     }
  48. }
  49.  



¿Alguien puede ayudarme?
  • 0

#2 porfi.dev

porfi.dev

    Advanced Member

  • Miembros
  • PipPipPip
  • 183 mensajes
  • LocationMy House @ México

Escrito 13 diciembre 2013 - 04:32

Lo siento amigo.. lo que seria aqui es hacer

var_dump($_POST); y var_dump($_GET)

para que veas que es lo qeu esta enviandose realmente.. purbealo en chrome y en FF para ver si llega lo mismo.


  • 0

#3 jonbra

jonbra

    Advanced Member

  • Miembros
  • PipPipPip
  • 57 mensajes

Escrito 14 diciembre 2013 - 06:16

Encontré dónde estaba el problema.

El problema es que Firefox no soporta el atributo name en el input type image.

Lo cual es un error, porque W3 especifica que el atributo name tiene cabida y sentido en el input type image.

http://www.w3.org/co...nts/input/image

No se por qué no lo soporta, pero la verdad es que ha sido un quebradero de cabeza.

Espero no hablar de más y que me equivoque, pero:

esto desde mi punto de vista le quita puntos a Firefox para ser un navegador con el que diseñar páginas webs.

En Chrome mi script funcionaba perfectamente, en Firefox ha sido un desastre y pérdida de tiempo.

He tenido que cambiar el input type image por un button, añadiendo más código sin tener por qué.

No entiendo cómo es que hay gente que dice que este navegador es ideal para desarrolladores, que vengan y me lo expliquen.

Gracias por la ayuda! :D
  • 0

#4 porfi.dev

porfi.dev

    Advanced Member

  • Miembros
  • PipPipPip
  • 183 mensajes
  • LocationMy House @ México

Escrito 16 diciembre 2013 - 12:29

Lo ideal:

Si funciona en chrome, puede no funcionar en otros.
Si funciona en otros, funciona en chrome.


Por lo que chrome no deberia ser tu navegador de prueba. Saludos.
  • 0




IP.Board spam blocked by CleanTalk.