[英]accessing $_POST data of dynamically created input values
我有一個包含幾個文本區域的表單,然后是大約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="p_' . $row['country_id'] . '"
那么你可以去:
foreach ($_POST as $key => $value) {
if (substr($key, 0, 2) == "p_") {
$country_id[str_replace("p_", "", $key)] = $value;
}
}
$_POST[68]
和$_POST[28]
將返回您需要的值。 您應該改用Alpha鍵(country_code)
。 如果由於某種原因數據庫中的這些數字ID發生更改,則在維護代碼方面會遇到麻煩。 HTML還要求您使用唯一的元素ID來使文檔有效。
就像上面說的,你確實有
name="country_id"
大概也超過70次 那將是一個問題。
你可以做:
name="country_id[]"
並在發布后在PHP中獲取一個數組。
另外,您確定要發布嗎? 好像不是$ _POST為空。
最好的解決方案是用HTML創建一個數組,以便它以您想要的格式發布...請參考此示例: PHP:數組結構幫助
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.