PHP Array'd POST Имя переменной - PullRequest
0 голосов
/ 11 сентября 2011

Используя следующий код, который я пытаюсь:

  1. Проверить, было ли отправлено одно из динамически назначенных имен полей;
  2. Использовать «Код действия» для обработкипредоставленная информация.

Моя проблема заключается в том, что я не могу получить соответствующее имя динамической переменной.$this->get_field_name('email_to') выведет переменную имени, такую ​​как widget-mywidget[3][email_to];но чтобы получить доступ к этому значению через PHP, мне нужно это в виде $_POST['widget-mywidget'][3]['email_to'].

Как мне решить эту дилемму?

ВЫХОДНОЙ HTML:

<form id="widget-mywidget-3-osiris_contact" method="post" action="">
<fieldset>
<input type="text" name="widget-mywidget[3][user_name]">
<input type="text" name="widget-mywidget[3][user_email]">
<textarea name="widget-mywidget[3][user_message]"></textarea>
</fieldset>
<fieldset>
<input type="hidden" name="widget-mywidget[3][email_to]" value="">
<input type="hidden" name="widget-mywidget[3][email_subject]" value="">
<button type="submit" name="widget-mywidget[3][email_send]">Send</button>
</fieldset>
</form>

ОБРАБОТКА PHP:

if(in_array($this->get_field_name('email_to'), $_POST)){ // <--- Where I need help.
    // Actionable Code
}

Ответы [ 2 ]

1 голос
/ 11 сентября 2011

Вот что $this->get_field_name делает:

  function get_field_name($field_name) {
     return 'widget-' . $this->id_base . '[' . $this->number . '][' . $field_name . ']';
  }

Я предлагаю вам print_r ($ _ POST) и сравнить его визуально для лучшей отладки ...
(Или используйте отладчик ...)

0 голосов
/ 11 сентября 2011
$thing  = "widget-mywidget[3][email_to]";
$exp    = explode("[", $thing);
$get_it = $_POST['".$exp[0]."[".$exp[1]."[".$exp[2]."'];

Попробуйте, если это работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...