我想使用ajax保存复选框的值。
这是我希望更新以使用ajax的当前代码。
这是视图
<?php $i = 0;
foreach ($summary as $sum) {
?>
<tr class="font-size12">
<td><p><?php echo $sum['posts']['title']; ?></p></td>
<td class="width450"><p><?php echo $sum['posts']['content']; ?></p></td>
<td><p class="margin-left28"><?php echo $sum['members']['username']; ?></p></td>
<td><p><?php echo $sum['posts']['deadline']; ?></p></td>
<?php echo $this->Form->create("Posts", array("action" => "update_checkbox")) ?>
<td>
<?php
echo $this->Form->input('Post.' . $i . '.id', array("type" => "hidden", "label" => false, "value" =>
$sum['posts']['id']))
?>
<?php
echo $this->Form->input('Post.' . $i . '.done', array("type" => "checkbox", "label" => false, "value" => "1", "id" => "idCheck[]", "onclick" => "getboxes()"))
?>
</td>
</tr>
<?php $i++;
}
?>
</table>
<?php echo $this->Form->end() ?>
javascript
function getboxes(){
$("idCheck[]").click(function(){
$.ajax({
url: '../../../../Controller/PostsController',
data: { action: 'checkingBox' },
type: 'post'
// ,
// success: function(output) {
// alert(output);
// }
});
});
}
控制器
public function update_checkbox() {
// debug($this->data);
$var = $this->Post->saveCheckBox($this->data);
$this->set("result", $var);
}
模型
public function saveCheckBox($checkbox) {
debug($checkbox);
$this->saveAll($checkbox['Post']);
}
编辑:我在复选框中添加了一个监听器
答案 0 :(得分:0)
根据您当前的代码,有两种方法可以将复选框值存储到数据库中。 要么你必须操纵收到的ajax_method()中发布的数据 并使其像下面的数组
[Post] => array(
[0] => ....
[1] => ....
);
然后你使用$ this-&gt; Post-&gt; saveAll($ this-&gt; request-&gt; data);
或者您可以使用以下代码将复选框值保存到数据库中。
echo $this->Form->input('Case.CHECK_ID][', array('type' => 'checkbox'));
然后你可以使用saveAll()方法。