【问题标题】:Jquery Bootstrap not allowing zero as valueJquery Bootstrap 不允许零作为值
【发布时间】: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


【解决方案1】:

我找到了解决办法:

我在 add_preds.php 文件中有一个“if”语句,用于搜索预测值:

if ($key == 1 && $pred)

但是,如果您在输入字段中输入零 (0),jquery/Bootstrap 似乎没有传递值,因此数据库查询不成功!

我只是从 if 语句中删除了预测值:

if ($key == 1)

然后它就可以正常工作了!

如 cmets 中所述,我还在 jquery 脚本中将“GET”更改为“POST”。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-09
    • 1970-01-01
    相关资源
    最近更新 更多