我有3个可以动态添加的输入。所以输入的name
是数组,如:
<input type="text" name="qty1[]">
<input type="text" name="qty2[]">
<input type="text" name="qty3[]">
(这些输入文本中的每一个都可以通过javascript生成)
在我的php文件中,我得到它们并希望插入数据库(我的控制器在codeigniter中):
$address = $this->input->post("qty1");
$LocX = $this->input->post("qty2");
$LocY = $this->input->post("qty3");
在我的数据库部分中,我想使用foreach
并添加到数据库:
修改
foreach ($address as $key) {
// I want to add $LocX and $LocY to the table
// LocX and LocY are column names.
$query = $this->db->query("INSERT INTO address (Comp_ID, Value, LocX, LocY)
VALUES(?, ?)", array($Comp_ID, $key ,? ,?));
}
我想将所有这些作为参数添加到foreach中。当我搜索它是不可能的。我该怎么办?感谢。
EDIT2
数组的结果,例如$LocX
:
Array
(
[0] => test1
[1] => test2
[2] => test3
)
答案 0 :(得分:1)
您可以使用foreach中的索引来获取其他元素。但是您需要仔细检查其他数组中是否存在索引值(isset check)
例如:
foreach ($address as $key => $value) {
if(isset($LocX[$key], $LocY[$key]) {
$a_LocX = $LocX[$key]; // This will be the locx of the address
$a_LocY = $LocY[$key]; // This will be the locy of the address
// Change your query to fit the table and fill in the locx and y.
$query = $this->db->query("INSERT INTO address (Comp_ID, Value)
VALUES(?, ?)", array($Comp_ID, $key));
}
答案 1 :(得分:1)
您也可以使用for
循环。
$address = $this->input->post("qty1");
$LocX = $this->input->post("qty2");
$LocY = $this->input->post("qty3");
$n=count($address);
for($i=0;$i<$n;$i++){
$a=$address[$i];
$x=$locX[$i];
$y=$locY[$i];
//insert here
}