【问题标题】:Retrieving data from several input fields with the same name从多个具有相同名称的输入字段中检索数据
【发布时间】:2012-10-28 18:47:28
【问题描述】:

我有一个表单,您可以动态创建新的输入字段(type=hidden),当发送表单时,我的 php 代码应检索该表单。但是,由于输入字段的数量可能不同,我给它们取了相同的名称。但问题是我不知道如何检索它,或者更准确地说,不知道如何处理检索到的内容。

来自表格:

...
<input type='hidden' name='newListObject' value='0' />
<input type='hidden' name='newListObject' value='1' />
<input type='hidden' name='newListObject' value='2' />
<input type='hidden' name='newListObject' value='3' />
...

来自php代码(listView.php):

private $m_newListObject = 'newListObject';
...
if (isset($_POST[$this->newListObject])) {
    $listObjects = $_POST[$this->m_newListObject];
}

来自 php 代码(listModel.php):

//Below doesn't work because $listObjects isn't an array

foreach ($listObjects as $listObject) {
    $query = "INSERT INTO listElement (listElemName, listId) VALUES(?, ?)";

    $stmt = $this->m_db->Prepare($query);

    $stmt->bind_param('si', $listObject, $listId);

    $ret = $this->m_db->RunInsertQuery($stmt);

}

【问题讨论】:

    标签: php forms post input


    【解决方案1】:
    <input type='hidden' name='newListObject[]' value='0' />
    <input type='hidden' name='newListObject[]' value='1' />
    <input type='hidden' name='newListObject[]' value='2' />
    <input type='hidden' name='newListObject[]' value='3' />
    

    现在将$_REQUEST['newListObject'] 用作array()

    【讨论】:

    • 谢谢!所以我应该在没有“[]”的情况下检索它们?我应该使用 $_REQUEST 而不是 $_POST 还是什么意思?
    • @holyredbeard $_POST if you POST, $_GET if you GET, $_REQUEST if I don't know :) [] 将它们转换为 PHP 中的数组。因此,您将 $_WHATEVER['newListObject'] 视为数组而不是标量。并且没有[]。这只是在 HTML 中让 PHP 为您提供数组。
    【解决方案2】:

    如果您调用它们name="newListPObject[]",PHP 会将它们作为可以循环的数组接收。

    【讨论】:

      猜你喜欢
      • 2017-04-08
      • 1970-01-01
      • 1970-01-01
      • 2011-11-20
      • 1970-01-01
      • 1970-01-01
      • 2017-11-06
      • 2010-10-03
      • 1970-01-01
      相关资源
      最近更新 更多