【发布时间】:2016-09-01 03:19:38
【问题描述】:
更新:代码正在运行。我的 php 文件中有一个错误命名的表。
在我寻求帮助的过程中,我从一些 sn-ps 中找到了以下内容,但是我无法让它工作。我想要完成的是单击一个复选框,它会自动在我的数据库中填充一行,我可以在任何其他页面上引用该行。现在,当我单击复选框时,什么也没有发生。
HTML
<td><input type="checkbox" name="<?php echo $brow['WorkOrder']; ?>" value="<?php echo $brow['WorkOrder']; ?>"></td>
阿贾克斯
<!-- Checkbox storage -->
<script>
$(document).ready(function(){
$("input[type='checkbox']").on('click', function(){
var checked = $(this).attr('checked');
if(checked){
var value = $(this).val();
$.post('functions/checkBox.php', { value:value }, function(data){
// data = 0 - means that there was an error
// data = 1 - means that everything is ok
if(data == 1){
// Do something or do nothing :-)
alert('Data was saved in db!');
}
});
}
});
});
</script>
函数/checkBox.php
<?php
if ($_POST && isset($_POST['value'])) {
// db connection
include("../../db.php");
// sanitize the value
$value = mysql_real_escape_string($_POST['value']);
// start the query
$sql = "INSERT INTO TemporaryCheckBoxID (WorkOrder) VALUES ('$value')";
// check if the query was executed
if(mysql_query($sql)){
// everything is Ok, the data was inserted
print(1);
} else {
// error happened
print(0);
}
}
?>
【问题讨论】:
-
你能详细说明“什么都没发生”吗? JavaScript 代码中是否有错误?是否发出了 AJAX 请求?它有你期望的数据吗?服务器的响应是什么?运行时执行的 SQL 查询是什么? MySQL 服务器是否返回错误? (提示:你没有检查)在哪里/如何具体失败了?
-
它不会发出警报,即使当出现错误并且没有显示任何内容时反转为 0 也会发出警报。 chrome 控制台中没有显示任何内容,也没有生成 error_log 文件。
-
好的,所以它没有到达回调中的
alert()。它做什么?有许多if语句嵌套了alert()。也许其中之一是false?当你调试这个时,它在哪里失败了? -
这些复选框是在页面呈现时存在还是在之后创建?
-
@JohnLang:
data的运行时值是多少?如果if (data == 1)为假,那么data可能 等于 1 以外的值似乎是合理的。