我:
<form action="save.php" method="POST">
<input type="text" name="test[one][]" value="a"><input type="text" name="test[two][]" value="a"> <br />
<input type="text" name="test[one][]" value="s"><input type="text" name="test[two][]" value="s"><br />
<input type="text" name="test[one][]" value="d"><input type="text" name="test[two][]" value="d"><br />
<input type="text" name="test[one][]" value="f"><input type="text" name="test[two][]" value="f"><br />
<input type="text" name="test[one][]" value="g"><input type="text" name="test[two][]" value="g"><br />
<input type="submit">
</form>
在數據庫有:
Table:
id | one | two
在PHP
我想補充:
if($_POST){
foreach($_POST['test'] as $post){
$new = new Table();
$new->setOne($post['one']);
$new->setTwo($post['two']);
$new->save();
}
}
但是這不工作...我不能使用POST作爲索引'one'和'two' - 我必須使用兩個循環foreach。有可能用一個foreach或foreach做成foreach嗎?
的print_r($ _ POST)返回我:
[test] => Array ([one] => Array ([0] => a [1] => s [2] => d [3] => f [4] => g) [two] => Array ([0] => a [1] => s [2] => d [3] => f [4] => g)))
打印一個'的var_dump($ _ POST)'篩選,一切都會清潔。 – moonwave99
如果你這樣設置,擺脫'一'和'兩'的東西。根據$ _POST數組中的奇數和偶數(索引)循環$ _POST和映射。 –
順便說一句,給你的對象一個描述性的名字(如$表)而不是$新,這提高了你的代碼的可讀性。另外,'if($ _POST)'不能確保你需要的所有'$ _POST'值都被設置,你應該使用['isset()'](http://php.net/manual/en/function)。而不是.setset.php)。最後,我不知道你是否自己編寫了Table類,但'setOne'和'setTwo'看起來像setter,而它們實際上是添加項目的方法(對吧?)。也許你應該改名爲'addOne'和'addTwo'? – Frog