【发布时间】:2014-09-05 07:21:54
【问题描述】:
我正在使用 Jquery Bootstrap 向 MYSQL 添加数据,但它不允许值为零。
这是我的脚本:
<script type="text/javascript">
jQuery(document).ready(function() {
$.fn.editable.defaults.mode = 'popup';
$('.xedit').editable();
$(document).on('click','.editable-submit',function(){
var x = $(this).closest('.editable-container').prev().attr('data-id');
var key = $(this).closest('.editable-container').prev().attr('id');
var y = $('.input-sm').val();
var z = $(this).closest('.editable-container').prev();
$.ajax({
url: "add_preds.php?id="+x+"&pred="+y+"&key="+key,
type: 'GET',
success: function(s){
if(s == 'status'){
$(z).html(y);}
if(s == 'error') {
alert('Error Processing your Request!');}
},
error: function(e){
alert('Error Processing your Request!!');
}
});
});
});
</script>
这里是 add_preds.php:
$id = $mysqli->real_escape_string($_GET['id']);
$pred_org = $mysqli->real_escape_string($_GET['pred']);
$key = $mysqli->real_escape_string($_GET['key']);
//Only numbers
$pred = preg_replace('/\D/', '', $pred_org);
//Fetch user id
$qus = "SELECT id, admin FROM fxweb_users WHERE username = '".htmlentities($_SESSION['username'])."'";
$rus = mysqli_query($mysqli, $qus);
$rowus = mysqli_fetch_array($rus);
$userid = $rowus['id'];
$is_admin = $rowus['admin'];
//Check if match exists
$qm = "SELECT * FROM fxweb_predictiondata WHERE matchid = ".$id." AND userid = ".$userid."";
$rm = mysqli_query($mysqli, $qm);
$rowm = mysqli_fetch_array($rm);
$predhome = $rowm['homescore'];
$predaway = $rowm['awayscore'];
//Define date and time
$date = date('Y-m-d H:i:s');
if ($key == 1 && $pred) {
if ($predhome >= 0) {
//a real user posted a real reply
if ($insert_stmt = $mysqli->prepare("UPDATE fxweb_predictiondata SET homescore=? WHERE matchid=? AND userid=?")) {
$insert_stmt->bind_param('sss', $pred, $id, $userid);
// Execute the prepared query.
$insert_stmt->execute();
}
}
}
if ($key == 1 && !$predhome && !$predaway && $pred) {
if ($insert_stmt = $mysqli->prepare("INSERT INTO fxweb_predictiondata (userid, matchid, predtime, homescore) VALUES (?, ?, ?, ?)")) {
$insert_stmt->bind_param('ssss', $userid, $id, $date, $pred);
// Execute the prepared query.
$insert_stmt->execute();
}
}
if ($key == 2 && $pred) {
if ($predaway >= 0 ) {
//a real user posted a real reply
if ($insert_stmt = $mysqli->prepare("UPDATE fxweb_predictiondata SET awayscore=? WHERE matchid=? AND userid=?")) {
$insert_stmt->bind_param('sss', $pred, $id, $userid);
// Execute the prepared query.
$insert_stmt->execute();
}
}
}
if ($key == 2 && !$predaway && !$predhome && $pred) {
if ($insert_stmt = $mysqli->prepare("INSERT INTO fxweb_predictiondata (userid, matchid, predtime, awayscore) VALUES (?, ?, ?, ?)")) {
$insert_stmt->bind_param('ssss', $userid, $id, $date, $pred);
// Execute the prepared query.
$insert_stmt->execute();
}
}
//Admin enter match results
if ($key == 3 && $pred && $is_admin = 1) {
if ($predhome >= 0) {
//a real user posted a real reply
if ($insert_stmt = $mysqli->prepare("UPDATE fxweb_matches SET homescore=? WHERE id=?")) {
$insert_stmt->bind_param('ss', $pred, $id);
// Execute the prepared query.
$insert_stmt->execute();
}
}
}
if ($key == 4 && $pred && $is_admin = 1) {
if ($predaway >= 0 ) {
//a real user posted a real reply
if ($insert_stmt = $mysqli->prepare("UPDATE fxweb_matches SET awayscore=? WHERE id=?")) {
$insert_stmt->bind_param('ss', $pred, $id);
// Execute the prepared query.
$insert_stmt->execute();
}
}
}
脚本运行良好,直到我尝试添加一个“0”输入,它不允许它并抛出错误警报!
有人知道解决这个问题的方法吗?
【问题讨论】:
-
您的 add_preds.php 代码在哪里?错误是由此产生的.. jquery/bootstrap 与此无关..
-
是的,我同意,错误应该来自 PHP 端,而不是 JS 端。此外,为什么你有一个 POST 查询之外的 GET 查询(对于数据库插入来说更详细)。
-
我已经添加了php代码,请看一下。
标签: php jquery mysql twitter-bootstrap