2012-10-28 49 views
0

我有一个窗体,您可以动态地创建新的输入字段(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); 

} 

回答

3
<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()

+0

谢谢!所以我应该检索他们没有“[]”?我应该使用$ _REQUEST而不是$ _POST,或者你是什么意思? – holyredbeard

+0

@holyredbeard'如果你有'''''''_POST',如果你'GET''''''_GET',如果我不知道''_REQUEST'''''''把它们变成PHP中的数组。所以你把'$ _WHATEVER ['newListObject']'作为一个数组而不是标量。没有'[]'。这只是在HTML中让PHP给你数组。 – CodeAngry

1

如果你打电话给他们name="newListPObject[]" PHP会收到他们作为一个数组,可以循环。

相关问题