ฟังก์ชันความสำเร็จใน Ajax ไม่ทำงาน

ผลรวมของตัวแปรควรเพิ่มขึ้น (total++) เมื่อฟังก์ชัน ajax สำเร็จและชื่อถูกแทรกลงในฐานข้อมูล แต่เมื่อแทรกบันทึก ผลรวม++ จะไม่ทำงาน การแจ้งเตือน ("ใส่ชื่อสำเร็จ" จะไม่แสดง และทุกครั้งที่ฉันใส่ชื่อใหม่ ยอดรวมจะเป็น 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);

?>

person fredericmarcel    schedule 19.03.2016    source แหล่งที่มา
comment
แล้วมันใช้งานไม่ได้ยังไง? คุณแน่ใจหรือไม่ว่าการโทรกลับที่สำเร็จนั้นถูกเรียกว่าจริงหรือไม่ ใช้คอนโซลของคุณ เพิ่มคำสั่งคอนโซล เพิ่มตัวจัดการข้อผิดพลาดในการเรียก Ajax   -  person epascarello    schedule 19.03.2016


คำตอบ (2)


tota++;

คุณไม่มี 'l' ในตอนท้ายที่นั่น

person Obversity    schedule 19.03.2016

มันไม่ทำงานเนื่องจากตัวแปร total ไม่ได้เป็นแบบโกลบอล เนื่องจากมีการประกาศภายใน DOM พร้อมแล้ว

เพื่อให้ใช้งานได้ให้ประกาศ total DOM ภายนอกพร้อมแล้ว

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