Академический Документы
Профессиональный Документы
Культура Документы
34
Para llevar: formulario de datos de procesamiento en PHP es mucho más simple que la mayoría de otros lenguajes de
programación Web.Esta simplicidad y facilidad de uso permite hacer algunas cosas bastante compleja con las formas,
incluyendo el manejo de múltiples botones de envío de la misma forma.
los datos de procesamiento de formularios en PHP es mucho más simple que en la mayoría de otros lenguajes de programación web, un hecho que
está, sin duda, ya es consciente de si usted ha estado utilizando el lenguaje de un tiempo. Esta simplicidad y facilidad de uso permite hacer algunas
cosas bastante compleja con las formas ... incluyendo el tema del debate de hoy, manejo de las diferentes acciones a través de múltiples botones de
presentar en la misma forma.
action="processor.php" <form method="POST"> Introduzca un número: <input type="text" nombre="nombre" size="3"> <br>
<input type="submit" name="submit"> </ form>
</ Body>
</ HTML>
Y aquí está la secuencia de comandos processor.php que se invoca en la presentación:
<? Php
?>
Cuando se envía un formulario a un script PHP, PHP crea automáticamente un especial de $ _POST o $ _GET matriz asociativa, según el método de
presentación se utilizó (Voy a publicar asumir a lo largo de este tutorial). Los valores introducidos en los campos del formulario de entrada se convierten
automáticamente a los pares de clave y valor en esta matriz y, a continuación se puede acceder usando notación de arreglos regulares.
Preste especial atención a cómo el botón de envío se maneja en el guión anterior.Cuando se envía el formulario, el botón de envío se convierte en un
elemento de la matriz $ _POST, con una clave correspondiente a su "nombre". Esto es claramente visible mediante la adición de la línea:
print_r ($ _POST);
hasta el final de la secuencia de comandos de PHP anteriores. Usted puede mirar dentro de la matriz y ver claramente la correspondencia entre los
controles de formulario y sus representaciones PHP.
Ahora echemos un vistazo a cómo manejar los botones múltiples formas .
action="processor.php" <form method="POST"> Introduzca un número: <input type="text" nombre="nombre" size="3"> <br>
<input type="submit" name="add" value="Add 10">
name="subtract" <input type="submit" value="Subtract 10"> </ form>
</ Body>
</ HTML>
Dado que ambos botones de envío invocará el mismo procesador de PHP forma, ese guión PHP debe ser revisada para que "sabe" que una se ha
hecho clic para que pueda responder de manera apropiada.
Puesto que usted ya sabe que el botón de envío aparece en el array $ _POST PHP y se afina por su atributo "name", es muy sencillo (1) dar a cada
botón de envío en la forma un nombre único y (2) escribir un simple "si "prueba en la parte superior del procesador de PHP para ver cuál de las dos
teclas aparece en la matriz $ _POST y la rama de código de forma apropiada. Eso es exactamente lo siguiente que hace el script:
<? Php
?>
Si usted tiene un montón de estima, una buena idea es utilizar un modificador / case para manejar el código de diferentes ramas de manera más
eficiente.
action="processor.php" <form method="POST"> Introduzca un número: name="number_1" <input type="text" size="3"> <br>
Introduzca otro número: <input type = "text "name =" número_2 "size =" 3 "> <br>
<input type="submit" name="calculate" value="add">
<input type="submit" name="calculate" value="subtract">
<input type="submit" name="calculate" value="multiply"> </ form>
</ Body>
</ HTML>
La secuencia de comandos de procesamiento tiene que comprobar el valor de '] el elemento $ _POST [' calcular, y la rama de código de forma
apropiada. La forma más eficiente de hacerlo es con un interruptor de los casos la declaración de la siguiente manera:
<? Php
?>
Dependiendo de qué botón se hizo clic, el valor correspondiente se pasa a la secuencia de comandos de transformación y el correspondiente "caso" de
bloque se invoca. Si usted tiene un gran número de botones de envío para hacer frente a este enfoque es más fácil de leer y comprender que varios if-
else bloques.
Pero ¿qué pasa con el caso de que usted tiene botones gráficos presente en lugar de basado en el texto ?
</ Body>
</ HTML>
Cuando este formulario se envía a PHP para su procesamiento, mira lo que el array $ _POST contiene:
Array
(
[Q] => urraca
[Go_x] => 13
[Go_y] => 13
)
Debido a que es un botón gráfico, PHP realmente acompaña el ratón coordenadas del clic del ratón y crea dos elementos de la matriz resultado para
almacenar las coordenadas. Los elementos se nombran button_name] _x [ y [button_name] _yrespectivamente.
¿Por qué es importante esto? Bueno, si había estado utilizando un si () prueba clave en el control de presentar el "nombre" la prueba de que han
fracasado porque en lugar de crear un solo elemento de acceso a través de $] _POST ['ir', PHP realmente creado dos elementos con nombre $ _POST
['go_x'] y $] _POST ['go_y' , respectivamente.Tome nota de esto para futuras referencias, ya que podría ahorrar un poco de tiempo cuando las cosas no
funcionan como se esperaba.
Así que ahora, ¿qué sucede si tiene varios botones gráficos presente en su formulario:
<html> múltiples gráficos botones de envío </ head>
<body>
action="processor.php" <form method="POST"> Introduzca el número de parte: <input type="text" name="part"> <br>
<input type="image" name="view" src="/images/view.gif">
<input type="image" name="edit" src="/images/edit.gif">
<input type="image" name="delete" src="/images/delete.gif">
<input type="image" name="order" src="/images/order.gif"> </ form>
</ Body>
</ HTML>
Su script PHP tendría que contener múltiples ramas, algo como esto:
<? Php
if (['view_x'] $ _POST) {
/ / Código para ver el registro
} Else if (['edit_x'] $ _POST) {
/ / Código para editar registro
} Else if (['delete_x'] $ _POST) {
/ / Código para eliminar el registro
} Else if (['order_x'] $ _POST) {
/ / Código para realizar un pedido
}
?>
Por último, he aquí un ejemplo de la vida real para atarlo todo. Este ejemplo consta de un formulario generado dinámicamente con una lista de
direcciones de correo-e de la libreta de direcciones de un usuario. El usuario puede seleccionar una o más direcciones de esta lista y luego agregarlos a
una lista blanca o lista negra a; (s) también puede eliminar de la libreta de direcciones. El formulario contiene tres botones de acción que corresponde a
estas tres tareas. Echa un vistazo a una lista .
Tenga en cuenta que, en este caso, el botones de envío se nombran como elementos de la matriz PHP, con la clave que representa la acción. Cuando
se envía el formulario, este esquema de nombres provocará una serie de elementos individuales que se creará dentro de la matriz $ _POST, lo que
puede ser utilizado para identificar la acción y ejecutar el código de la agencia apropiada utilizando un caso sentencia switch, como se puede ver
en venta B .