我相信这项任务其实很简单。我想查询复选框的状态,用$传递它。将和JSON发布到函数,然后保存值。
my-html (relevant part)
<input type="checkbox" id="<?php echo $category->column_handle; ?>" name="<?php echo $category->column_handle; ?>" class="checkbox" <?php if($my_notifications->{$category->column_handle}){echo \'checked="checked"\';} ?> value="1">
my-script
$(\'.checkbox\').change(function(e){
var parent = $(this).parents(\'.container\');
$.post({
dataType: \'json\',
url: ajax_object.ajaxurl,
data:{
\'action\': \'myaction\',
\'column\': $(this).attr(\'id\'),
\'check\': $(this).prop(\'checked\')
}
}).done(function(data){
parent.find(\'.title\').text(data.input);
});
});
my-function
function my_function(){
global $wpdb;
$column = esc_attr($_POST[\'column\']);
$bool = esc_attr($_POST[\'check\']);
/*$id is correct and sourced elsewhere (I deleted that part)*/
$wpdb->update(\'my_dataset\',array($column => $bool),array(\'ID\' => $id));
echo json_encode(array(\'input\' => $bool));
die();
}
add_action(\'wp_ajax_myaction\',\'my_function\');
的。完成部分用于测试,并正确返回复选框的状态。但它并没有被保存。我已经尝试了很多,例如将状态视为字符串或传递0和1。一切都没有成功。也许你们中的一个可以帮助我。