Dos botones de envío en un formulario
Tengo dos botones de envío en un formulario. ¿Cómo puedo determinar cuál fue afectado por el servidor?
Aceptado
Solución 1:
asigne a cada entrada un valor diferente y mantenga el mismo nombre:
<input type="submit" name="action" value="Update" />
<input type="submit" name="action" value="Delete" />
Luego, en el código, verifique cuál se activó:
if ($_POST['action'] == 'Update') {
//action for update here
} else if ($_POST['action'] == 'Delete') {
//action for delete
} else {
//invalid action!
}
El problema con esto es que vincula su lógica al texto visible para el usuario dentro de la entrada.
Solución 2:
Asigne a cada uno un nombre único y verifique en $_POST la existencia de esa entrada:
<input type="submit" name="update_button" value="Update" />
<input type="submit" name="delete_button" value="Delete" />
Y en el código:
if (isset($_POST['update_button'])) {
//update action
} else if (isset($_POST['delete_button'])) {
//delete action
} else {
//no button pressed
}
Si le da un nombre a cada uno, el que hizo clic se enviará como cualquier otra entrada.
<input type="submit" name="button_1" value="Click me">