这是我的代码,用户可以通过点击添加更多链接来添加动态行。
但是当我打印
时print_r($this->input->post('name1'));
在控制器中,它只打印第一个值,但我想要所有数组值。
<form action="test.php" method="post">
<table rules="all" style="background:#fff;">
<tr>
<td style="font-size:14px;" >Name</td>
<td style="font-size:14px;">Email</td>
<td style="font-size:14px;">Mobile</td>
<td><span style="font:normal 12px agency, arial; color:blue; text-decoration:underline; cursor:pointer;" onclick="addMoreRows(this.form);">Add More</span>
</td>
</tr>
<tr id="rowId">
<td><input name="name1[]" type="text" value="" size="17%"/></td>
<td><input name="age1[]" type="text" value="" /></td>
<td><input name="relation1[]" type="text" value="" /></td>
</tr>
</table>
<div id="addedRows"></div>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<script type="text/javascript">
var rowCount = 1;
function addMoreRows(frm) {
rowCount ++;
var recRow = '<p id="rowCount'+rowCount+'"><tr><td><input name="name1[]" type="text" size="17%" maxlength="120" /></td><td><input name="age1[]" type="text" maxlength="120" style="margin: 4px 5px 0 5px;"/></td><td><input name="relation1[]" type="text" maxlength="120" style="margin: 4px 10px 0 0px;"/></td></tr> <a href="javascript:void(0);" onclick="removeRow('+rowCount+');">Delete</a></p>';
jQuery('#addedRows').append(recRow);
}
function removeRow(removeNum) {
jQuery('#rowCount'+removeNum).remove();
}
</script>
</form>
答案 0 :(得分:1)
尝试将其保存到另一个变量并按如下方式打印:
$name1 = $this->input->post('name1');
print_r($name1);
答案 1 :(得分:0)
更改您的观看页面:
将<?php echo form_open_multipart('test/add_member'); ?>
代替
<form action="test.php" method="post">
在控制器中:动态输入数组数据可以按如下方式处理,这可能会帮助你......谢谢!
public function add_member()
{
if (!$this->ion_auth->logged_in()) {
redirect('auth/login');
}
$itemCount = count($this->input->post('name'));
$itemValues=0;
$query = "INSERT INTO You_table_name(name, age, relation) VALUES ";
$queryValue = "";
for($i=0;$i<$itemCount;$i++) {
$name = $this->input->post('name');
$age = $this->input->post('age');
$relation = $this->input->post('relation');
if(!empty($name[$i])) {
$itemValues++;
if($queryValue!="") {
$queryValue .= ",";
}
$queryValue .= "('" . $name[$i] . "', '" . $age[$i] . "', '" . $relation[$i] . "')";
}
}
$sql = $query.$queryValue;
if($itemValues!=0) {
if (!$this->db->query($sql)) {
// echo "FALSE";
}else {
// echo "TRUE";
}
}
}
答案 2 :(得分:0)
您可以遍历所有POST项目,因此您可以打印出所有POST
值。另外,我建议增加名字&#39;也是atttribute,所以你将拥有name1,name2,name 3等,或者只是删除这个数字,因为你使用的是数组。
如果你想增加名字&#39;属性 循环:
$counter = 0;
foreach ($this->input->post('name1') as $key => $value)
{
$counter++;
// $value = name1
echo $this->input->post('age". $counter ."');
echo $this->input->post('relation". $counter ."');
}
使用数组 循环:
foreach ($this->input->post('name1') as $key => $value)
{
echo $value;
$this->input->post('age1');
$this->input->post('relation1');
}
我自己没有测试过它