isset _post для двумерного массива

<button type="submit" name="apply[<?php echo $temp['j_id']; ?>]"> Apply</button>

$temp['j_id']; назначается случайным образом, что является уникальным. Я хочу знать, какая кнопка j_id была нажата на отправленной странице, используя $ _POST и isset

После нажатия кнопки «Применить» это происходит по-другому — здесь я хочу проверить, какие значения apply [] были установлены с помощью $ _POST, т.е. if(isset($_POST['apply'][]))

Как проверить isset для $ _POST для двумерных массивов

0

Решение

Прочитав вопрос несколько раз, я думаю, что теперь понимаю. Проверьте, как я решил проблему в этом примере кода в Runable.

Как проверить isset для $ _POST для двумерных массивов?

if ( isset($_POST['apply']) &&
isset($_POST['apply']['someuniqueid']) )
{
//Do stuff
}

где someuniqueid это идентификатор кнопки.


В вашем случае это someuniqueid это именно то, что вы хотите понять. Я предполагаю, что этот «идентификатор» имеет смысл, и вы заранее знаете все возможные идентификаторы. В этом случае вам нужно проверять каждый возможный идентификатор, пока не будет найдено совпадение. Простой способ — сохранить эти идентификаторы в массиве, а затем перебрать его.

$possibleIDs = array('a', 'b', 'c', 'd');

if ( isset($_POST['apply']) ) {
foreach ($possibleIDs as $id) {
if ( isset($_POST['apply'][$id]) ) {
// Do stuff
}
}
}

Тем не менее, это довольно неэффективно, потому что вам нужно создать массив с идентификаторами, а затем перебрать его, чтобы найти значение. На самом деле не имеет большого смысла использовать массив «ключ» в качестве «значения». Кроме того, «ключевые» имена могут быть преобразованы / изменены (например, array('8' => 'foo') будет преобразован в array(8 => 'foo'),

ИМХО, лучший подход — назначить этот идентификатор значению кнопки.

<button type="submit" name="apply" value="<?php echo $temp['j_id']; ?>"> Apply</button>

В принимающем скрипте ваш идентификатор кнопки $_POST['apply'] значение.

Вы можете проверить этот пример в Runable. Обратите внимание, что только нажатой кнопке присваивается значение. Другие кнопки не представлены.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]