如何提取复选框信息并使用codeigniter将其存储在数据库中

时间:2011-04-19 11:36:06

标签: php html codeigniter

我在php文件中有这段代码。它将所有兴趣列为复选框,并允许输入文本字段“other”。用户应选择其中一些兴趣并保存。现在,当用户点击提交按钮时,它应该将它带到控制器,控制器应该提取它们并将其存储在数据库中。我有一个编码的文件可以做到这一点,但它没有好处和太混乱。

这是普通php文件中的表单

<form method="post" action="<?php echo site_url("userProfile/update_bio");?>" name="editForm" id="edit-form">

<div> <!-- description start -->
<div> <p <p class="special-p">Name:</p> <hr> </div>
<p class="used-p"> <input type="text" name="name" value="<?php echo $this->dx_auth->get_username(); ?>"></textarea> </p> <!-- should be real name -->

</div> <!-- description end -->

<div> <!-- description start -->
<div> <p <p class="special-p">Description:</p> <hr> </div>
<p class="used-p"> <textarea name="description"></textarea> </p>

</div> <!-- description end -->

<div> <!-- interests start -->
<div> <p class="special-p">Interests:</p> <hr class="special-hr2"> </div>
<p class="used-p">I am interested in:</p>

<ul>
<?php
foreach ($allInterests->result() as $row){
echo '<li><input type="checkbox" name="checks1[]" value="'.$row->id.'"/> '.$row->name.'</li>';


}

?>
<li><input type="checkbox" name="checks1[]" value="other"/> Other: <input type="text" name="otherText"/></li>
</ul>

</div> <!-- interests start -->

<div>
<input id="editbutton" type="submit" value="Save" name="editBioButton" class="small green button"/>
</div>

</form>

控制器功能为空。问题是我不知道它将如何收到复选框。

提前完成

1 个答案:

答案 0 :(得分:1)

foreach($this->input->post(checks1) as $check)
{
    echo $check;
}

但我相信如果选中复选框,它将不会出现在$_POST数组中。要解决此问题,请为每个复选框指定一个特定索引:

<?php
$count=0;
foreach ($allInterests->result() as $row){
   echo '<li><input type="checkbox" 
        name="checks1[' . $count . ']" value="'.$row->id.'"/> '.$row->name.'</li>';
    $count++;
}

可以做你需要的。你的控制器将是:

foreach($this->input->post(checks1) as $key => $value)
{
    echo $key . ' - ' . $value;
}