ajax中的成功函数不起作用

时间:2016-03-19 10:51:03

标签: ajax increment

当ajax函数成功并且名称插入数据库时​​,变量total应该递增(total ++)。 但是当插入记录时,总++不起作用,警报("名称成功插入"不显示,每次插入新名称时,总数为1而不是递增。 我希望你能帮助我。

HTML

<form  action="" method="post">
          <div class="form-item">
            <input id="name" type="text"  name="name">
          </div>
    </form>

这是jquery / ajax脚本

 <script>    
        $(document).ready(function(){ 
             var total = 1;                
            $('#name').keydown(function(e) {
                if (e.keyCode == 13) {
                      var name= $("#name").val();                        
                       var dataString = 'idUser='+ idUser
                        + '&total=' + total
                        + '&name=' + name

                      $.ajax({
                        type: "POST",
                        url: 'insertName.php',
                        data: dataString,
                         success: function() { 
                           alert("name successfully inserted") 
                           total++;
                         }   
                      }); 
                }
            });
        });
    </script>
This is the insertName.php file
<?php

if(isset($_POST['idUser'])) $idUser= ($_POST['idUser']); 
if(isset($_POST['total'])) $total=($_POST['total']);
if(isset($_POST['name'])) $name= utf8_decode($_POST['name']);

$name=mysql_escape_string($name);


$conn = mysqli_connect($servername, $username, $password, $dbname);
// Check connection
if (!$conn) {
    die("Connection failed: " . mysqli_connect_error());
}


// Create connection
$conn = mysqli_connect($servername, $username, $password, $dbname);
// Check connection
if (!$conn) {
    die("Connection failed: " . mysqli_connect_error());
}

$sql = "INSERT INTO names(idUser, date, total, name)
VALUES ('$idUser', CURDATE(), '$total', '$nom')";

if (mysqli_query($conn, $sql)) {

} else {
    echo "Error: " . $sql . "<br>" . mysqli_error($conn);
}

mysqli_close($conn);

?>

2 个答案:

答案 0 :(得分:1)

tota++;

你错过了一个&#39; l&#39;最后那里。

答案 1 :(得分:0)

它不起作用,因为total变量本质上不是全局变量,因为它在DOM准备就绪中声明。

要使其正常工作,请将total外部DOM准备好。

 var total; 
 $(document).ready(function(){ 
     total = 1;
     //your operation goes here.
     success: function() { 
              alert("name successfully inserted") 
              total++;
     }   
 });