首先要说我是使用PHP和javascript的完全新手。
我正在创建一个CRUD网页,当单击数据表的“编辑”按钮时,会打开一个引导模式,我可以编辑数据。
我能够使所有这些工作并写入mysql。但是在从模态形式的复选框输入(1或0)获取值以填充到mysql时遇到了麻烦。
几天来我一直在试图解决这个问题,并且已经在网上搜索了,无法为我的生命解决这个问题。任何帮助,将不胜感激。这是我的代码:
----- JS和ajax调用----
$(function(){
$('.edit').click(function(e){
e.preventDefault();
$('#edit').on('shown.bs.modal', function(){
$('#active').bootstrapToggle({
on: 'not active',
off: 'active',
onstyle: 'danger',
offstyle: 'success'
});
$('#active').change(function(){
if($(this).prop('checked')){
$('#hidden_active').val('1');}
else
{$('#hidden_active').val('0');}
});
}).modal('show');
var id = $(this).data('id');
getRow(id);
});
function getRow(id){
$.ajax({
type: 'POST',
url: 'post_row.php',
data: {id:id},
dataType: 'json',
success: function(response){
$('#edit_active').prop('checked', response.notactive == '1');
//....more rows follow
}
});
}
---模态形式----
<div class="form-group">
<label for="edit_active" class="col-sm-3 control-label">Active</label>
<div class="checkbox col-sm-9">
<input type="checkbox" name="active" id="edit_active"/>
</div>
</div>
<input type="hidden" name="hidden_active" id="hidden_active" value='1'/>
----- PHP更新------
<?php
include 'includes/session.php';
if(isset($_POST['edit'])){
$seq = $_POST['seq'];
$active = $_POST['hidden_active'];
$sql = "UPDATE posts SET seq = '$seq', notactive = '$active' , date_inactive = if ('$active' = 1, NOW(), NULL) WHERE id = '$id'";
if($conn->query($sql)){
$_SESSION['success'] = 'Updated successfully';
}
else{
$_SESSION['error'] = $conn->error;
}
}
else{
$_SESSION['error'] = 'Complete form first';
}
header('location:post.php');
?>
如果未选中(切换)复选框,则mysql更新为0,如果选中的mysql更新为1。但是什么也没有发生,值1是唯一通过的值,或者更新时什么也没有。