我尝试了数字解决方案,无法弄清楚我做错了什么。
我有以下输入元素:
<input type="checkbox" data-layout="fixed" class="pull-right" value="1">
就在我的关闭身体标签之前,我有以下jquery
<script>
$("input[type='checkbox']").on('click', function(){
var checked = $(this).attr('checked');
if(checked){
var value = $(this).val();
$.post('mysqlfunc.php', { value:value }, function(data){
if(data == 1){
}
});
}
});
</script>
在mysqlfunc.php文件中我有
<?php
include "../../inc/config.php";
include "../../inc/funcs.php";
@mysql_connect($dbhost,$dbuser,$dbpass);
@mysql_select_db($dbname) or die( "Unable to select database");
include "../../inc/userauth.php";
if ($_POST && isset($_POST['value'])) {
$value = mysql_real_escape_string($_POST['value']);
$sql = "UPDATE members SET fixed = '".$value."' WHERE username='".$_SESSION['uid']."'";
} else {
}
?>
我的期望是,当我单击输入复选框时,值“1”将保存到“固定”列中的“成员”表中,其中用户名等于会话uid。
我可以回应这个uid,这样就可以了。它没有给出任何错误,所以它似乎连接到数据库。然而,检查输入文本框不会更改数据库中的值。
我根本没有js错误,我没有php错误,只是没有保存。
我做错了什么?如果可能的话,示例工作代码将非常有用。
答案 0 :(得分:2)
您忘记使用Data
mysql_query
答案 1 :(得分:2)
脚本中的这一行是错误的。
var checked = $(this).attr('checked');
将其更改为
var checked = $(this).is(':checked')
答案 2 :(得分:0)
您使用的是什么版本的jquery?并检查邮件请求是否真的完成尝试使用.prop
:
$("input[type='checkbox']").on('click', function(){
var checked = $(this).prop('checked'); //<---- Here
if(checked){ // here returned true or false
var value = $(this).val();
$.post('mysqlfunc.php', { value:value }, function(data){
if(data == 1){
}
});
}
});
或强> ....
$("input[type='checkbox']").on('click', function(){
if( this.checked ){ // <-- just checked directly
var value = $(this).val();
$.post('mysqlfunc.php', { value:value }, function(data){
if(data == 1){
}
});
}
});
就像@Saty说的那样,让mysql_query($sql);
执行那些查询。
答案 3 :(得分:0)
你的JS代码看起来像。
$(document).ready(function(){
$("input[type='checkbox']").on('click', function(){
var checked = $(this).is(':checked');
if(checked){
var value = $(this).val();
$.post('mysqlfunc.php', { value:value }, function(data){
if(data == 1){
}
});
}
});
});
你错过了执行SQL所以,你的PHP代码看起来就像。
<?php
include "../../inc/config.php";
include "../../inc/funcs.php";
@mysql_connect($dbhost,$dbuser,$dbpass);
@mysql_select_db($dbname) or die( "Unable to select database");
include "../../inc/userauth.php";
if ($_POST && isset($_POST['value'])) {
$value = mysql_real_escape_string($_POST['value']);
$sql = "UPDATE members SET fixed = '".$value."' WHERE username='".$_SESSION['uid']."'";
mysql_query($sql);
} else {
}
?>