我在上周设法设置了一个页面,点击一个复选框将其数据直接保存到数据库我现在唯一的问题是如何将新值保存到右列在数据库中。
我有3个不同值和名称的复选框,通过ajax发布到另一页。我不确定如何处理这个问题。
以下是我的代码片段:
<script type="text/javascript">
$(function() {
$("input[type='checkbox']").on('click', function() {
var $this = $(this);
var isChecked = $this.prop('checked');
var checkVal = isChecked ? $this.attr('id') : $this.attr("value");
var userid = $this.attr('name');
$.ajax({
type: "GET",
url: 'request.php?uname=' + checkVal +'&id=' + userid,
success: function(data) {
//Success
if(data == 1){
alert('Data was saved in db!');
}
//Failure
if(data == 0){
alert('Data was NOT saved in db!');
}
}
});
});
});
Html
<form id="frm" name="frm">
<td><input name="29" type="checkbox" id="Paid" value="Waiting on Payment" checked="checked" /></td>
<td><input name="30" type="checkbox" id="Repaired" value="Waiting on Repairs" /></td>
<td><input name="31" type="checkbox" id="With Student" value="Awaiting Pickup" /></td>
</form>
继承数据库结构
名:测试
| | | | | | | |
我发现自己无法做的是如何告诉mysql查询哪个coloum保存新值,因为GET函数只是拉入另一个页面上的值而我不能让它将它们分开以便付费支票只会保存在付费的票房等等。
这是请求页面,以便获取值
的页面$link = mysql_connect('localhost', 'root', '');
if (!$link) {
// error happened
print(0);
}
mysql_select_db('test');
// sanitize the value
$value = mysql_real_escape_string($_GET['uname']);
$id = mysql_real_escape_string($_GET['id']);
// start the query
$sql = "INSERT INTO `test` VALUES ( NULL, 2, 3, '$value')";
// check if the query was executed
if(mysql_query($sql, $link)){
// everything is Ok, the data was inserted
print(1);
} else {
// error happened
print(0);
}
答案 0 :(得分:0)
您需要的是在INSERT中定义列,如下所示:
INSERT INTO `test` (col1, col2, col3, ...) VALUES ( NULL, 2, 3, '$value')
其中'col1','col2'等是你的专栏。这样您就可以定义所需的列。在VALUES()中,您只需输入先前定义的列的值。例如:
INSERT INTO `person` (name) VALUES ('tom')