簡體   English   中英

訪問動態創建的輸入值的$ _POST數據

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM