使用以下代码我试图:
我的问题在于我无法检索适当的动态变量名称。 $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
}
答案 0 :(得分:1)
这是$this->get_field_name
的作用:
function get_field_name($field_name) {
return 'widget-' . $this->id_base . '[' . $this->number . '][' . $field_name . ']';
}
我建议你print_r($ _ POST)并在视觉上进行比较以获得更好的调试...
(或者使用调试器......)
答案 1 :(得分:-2)
$thing = "widget-mywidget[3][email_to]";
$exp = explode("[", $thing);
$get_it = $_POST['".$exp[0]."[".$exp[1]."[".$exp[2]."'];
尝试,如果有效。