Во-первых, вместо того, чтобы называть кнопки общим термином типа «операция», я бы посоветовал вам называть их так, как они на самом деле делают, а именно «обновить» и «удалить». Это позволяет вам отделить функцию кнопки от того, какая метка отображается на кнопке.
<input type="submit" name="update" value="Update banner" />
<input type="submit" name="delete" value="Remove banner" />
Вы можете проверить, какая кнопка была нажата, используя array_key_exists или isset, чтобы определить, какая кнопка была нажата.
if (isset ($_POST ['update']))
{
}
else if (isset ($_POST ['delete']))
{
}
else
{
// No button was pressed
}
Что касается определения того, на какой элемент ссылается кнопка, я предполагаю, что у всех ваших баннеров есть какой-то способ уникальной идентификации (первичный ключ, обычно числовое значение). Если вы используете синтаксис [квадратные скобки] в названии кнопки, вы можете определить строку для нажатой кнопки.
<input type="submit" name="update[1]" value="Update banner" />
<input type="submit" name="delete[1]" value="Remove banner" />
<input type="submit" name="update[23]" value="Update banner" />
<input type="submit" name="delete[23]" value="Remove banner" />
<input type="submit" name="update[153]" value="Update banner" />
<input type="submit" name="delete[153]" value="Remove banner" />
if (isset ($_POST ['update']))
{
$rowToUpdate = key ($_POST ['update']);
}
else if (isset ($_POST ['delete']))
{
$rowToDelete = key ($_POST ['delete']);
}
else
{
// No button was pressed
}
Я использовал числа в качестве идентификаторов здесь, но вы можете использовать все, что вы используете, чтобы отличить один баннер от другого. Я сомневаюсь, что вы могли бы использовать знаки препинания или пробелы в своих идентификаторах, кроме подчеркивания, поэтому вам нужно помнить об этом. update[abc]
и update[abc_def]
должно быть в порядке, но я не могу поручиться за update[abc def]
или update[abc-def]
. В целом, использование числовых идентификаторов избавит вас от множества ненужных головных болей.