2016-03-02 73 views
1

我有一个小型的学校项目。我试图检查一个赌场名称是否在MySQL数据库中注册。如果名称不存在,则小型绿色勾号(glyphicon-ok)应从引导程序框架中显示。当我现在在表单中输入名称时,我根本没有收到来自我的JQuery的任何反馈。所以我的指定问题是:JQuery没有给出反馈

  • 我的语法在我的JQuery是否正确?
  • 在输入类型中使用相同的“createcasino”作为id和name是否不正确?

我希望有人能帮助我吗?

HTML:

<form id="casinoForm" method="post" class="form-horizontal fv-form fv-form-bootstrap" action="createcasino.php" novalidate="novalidate"><button type="submit" class="fv-hidden-submit" style="display: none; width: 0px; height: 0px;"></button> 
    <div class="form-group has-feedback"> 
     <label class="col-sm-3 control-label">Casino Name</label> 
     <div class="col-sm-5"> 
      <input type="text" class="form-control" name="createcasino" id="createcasino" data-fv-field="createcasino"><i class="form-control-feedback" data-fv-icon-for="createcasino" style="display: none;"></i> 
      <small class="help-block" data-fv-validator="notEmpty" data-fv-for="createcasino" data-fv-result="NOT_VALIDATED" style="display: none;">The Casinoname is required</small><span id="casinocheck" class="help-block"></span</div> 
    </div> 
</form> 

createvalidation.js

$(document).ready(function(){ 
    $('#createcasino').keyup(function() { 
    var usercheck = $(this).val(); 
      $('#casinocheck').html('');      /* !!!!Koden finder ikke glyphicon !!!!!*/ 
      $.post("casinocheck.php", {casino_name: usercheck } , function(data) 
      { 
      if (data.status == true) 
      { 
      $('#casinocheck').parent('div').removeClass('has-error').addClass('has-success'); 

      } else { 
      $('#casinocheck').parent('div').removeClass('has-success').addClass('has-error'); 
      } 
      $('#casinocheck').html(data.msg); 
      },'json'); 
    }); 
}); 


$(document).ready(function() { 
    $('#casinoForm').formValidation({ 
     message: 'test', 
     icon: { 
      valid: 'glyphicon glyphicon-ok', 
      invalid: 'glyphicon glyphicon-remove', 
      validating: 'glyphicon glyphicon-refresh' 
     }, 
     createcasino: { 
       message: 'test', 
       validators: { 
        notEmpty: { 
         message: 'The Casino name is required' 
        } 
       }  
     } 
    )}; 
)}; 

casinocheck.php

<?php 
ini_set('display_errors', 1); 
ini_set('display_startup_errors', 1); 
error_reporting(E_ALL); 

include 'dbconfic.inc.php'; 

if(isset($_POST['casino_name']) && $_POST['casino_name'] != '') 
    { 
     $response = array(); 
     $cas = mysqli_real_escape_string($mysqli,$_POST['casino_name']); 
     $sql = "SELECT * FROM casinos WHERE name='' "; 
     $res = mysqli_query($mysqli, $sql); 
     $count = mysqli_num_rows($res); 
     if($count > 0) 
     { 
      $response['status'] = false; 
      $response['msg'] = 'Casino Already Exist.'; 
     } 
     else 
     { 
      $response['status'] = true; 
      $response['msg'] = 'Casino available.'; 
     } 
     echo json_encode($response); 
}?> 

createcasino.php

<?php 
ini_set('display_errors', 1); 
ini_set('display_startup_errors', 1); 
error_reporting(E_ALL); 


// Selecting Database 
include 'dbconfic.inc.php'; 

if(isset($_POST["createcasino"])) { 
    $cas = trim($_POST["createcasino"]); 


    $stmt = $mysqli->prepare("INSERT INTO casinos(name) VALUES(?)"); 

     $stmt->bind_param('s', $cas); 

      // execute prepared statement 
       if ($stmt->execute()) { // tjek om udført: 
        $success = true; 
       } 
        // luk statement 
       $stmt->close(); 

       // luk connection 
       $mysqli->close(); 
if($success) { 
    echo "Insert Succesfull"; 
} else { 
    echo "Failed" . $stmt->error; 
    } 

} 

?> 
+0

什么是'casinocheck'这里'{casino_name:casinocheck}'?也许它的'usercheck'? –

回答

1

您是在形式的ID为keyup事件寻找keypress事件,而不是textbox ID

$('#casinoForm').keyup(function() { // this id has to be your input box id and not your form id 

使用createcasino的。它会从文本框中捕获数据。

<input type="text" class="form-control" name="createcasino" id="createcasino" data-fv-field="createcasino"> 

所以将其更改为:$('#createcasino').keyup(function() {

而且这已更改为:

$.post("casinocheck.php", {casino_name: usercheck } , function(data) 

而且你缺少其中选择查询:

$sql = "SELECT name FROM casinos"; 

选中此的jsfiddle https://jsfiddle.net/bsgxj5od/

+0

@MadsKristensen查看更多更新内容 –

+0

@MadsKristensen现在工作吗? –

+0

非常感谢。我已经改变了你现在所建议的事情,并且绝对让人心动。你认为我的代码中有更重要的错误吗?还没有发生。我有点疑问,如果glyphicon被称为。 – KrMa