访问$ _POST数据的动态创建的输入值
问题描述:
我有一个窗体有几个文本区域,然后大约20个输入字段。
的输入字段被动态创建,使用一个循环,并从值在我的分贝创建(国家)
我的代码是:
$options = '';
$country_code = '';
$query = $DB->query("SELECT country_code, country_id, IF(country_code = ".$country_code."', '', '') AS sel FROM exp_sme_countries WHERE site_id='".$this->settings['site_id']."' ORDER BY country_name ASC");
foreach ($query->result as $row)
{
$options .= '<label>' . 'Phrase for ' . $this->settings['countries'][$row['country_code']] . '</label>' . '<br />';
$options .= '<input style="width: 100%; height: 5%;" id="country_data" type="text" name="' . $row['country_id'] . '" />' . '<br /><br />';
$options .= '<input type="hidden" name="country_id" id="country_id" value="' . $row['country_id'] . '" />';
}
此输出的例子,如:
input style="width: 100%; height: 5%;" id="country_data" type="text" name="68" />
input style="width: 100%; height: 5%;" id="country_data" type="text" name="28" />
现在我的问题是,我如何获得这些输入字段的值?
我看过输出$ _POST,但这似乎返回我无法真正访问的数据。
可以用任何方式访问这些值吗?
还是需要改变我做事的方式?
感谢
答
像上面说的,你有
name="country_id"
可能喜欢70+次为好。这将是一个问题。
你可以这样做:
name="country_id[]"
,它被张贴后得到PHP中的数组。
另外,你确定你在发布吗?好像不是,如果$ _POST为空..
答
改变你的 '名称' 字段如下:
name="p_' . $row['country_id'] . '"
那么你可以去:
foreach ($_POST as $key => $value) {
if (substr($key, 0, 2) == "p_") {
$country_id[str_replace("p_", "", $key)] = $value;
}
}
+0
这似乎工作。我只需要将其插入到一个循环中,以便将所有内容都放入我的数据库表中。谢谢! – terrid25 2010-11-19 17:08:59
答
$_POST[68]
和$_POST[28]
将返回你所需要的值。您应该使用字母键(country_code)
。如果由于某些原因数据库中的数字标识发生更改,则维护代码时会遇到问题。 HTML还要求您使用唯一的元素ID来使文档有效。
它看起来就像你输出重复的html id一样 - 不要这样做。 – Skilldrick 2010-11-19 16:50:27