表格不保存数据到MySQL数据库

时间:2016-05-14 08:04:48

标签: php jquery mysql ajax

我无法将此表单中的单个数据(deckName)记录到我的MySQL数据库中。我阅读并尝试了我在网上找到的所有解决方案,但我无法让它发挥作用。从PHPMyAdmin执行MySQL命令工作正常。

我需要在db(id,name,cards)的deck表中保存值。

Jquery / Ajax脚本:

<script>
    $(document).ready(function(){     

        $(document).on('submit','.save',function(){

            var deckName = $('.deck').val();
            console.log(deckName);

            $.ajax({
                type: "POST",
                url: "submit.php",
                data: { "name": deckName},
                success: console.log('worked')

            });
        });
    }); 

</script>

形式:

<div class="decklist">
    <form method="post" id="decklist">
    <input class="deck" id="deckN" type="text" value="Deck name"/>
    <input class="save" type="submit" value="Save Deck"/>
    </form>
    <div class="list">
        <ul class="d_list">
            <li class='added_card' id='list_0'></li>
        </ul>
    </div>
</div>

submit.php:

<?php


if(isset($_POST["name"])&& strlen($_POST["name"])>0){

    $deckName = $_POST["name"];
    $cards = 0;

    echo $deckName;

    $conn = new mysqli("localhost:8080","root","","ken");
    if($conn -> connect_errno){
        die("Failed to connect: (". $conn->connect_errno. ")".$conn->connect_error);
    }

    $insert = $conn->query ("INSERT INTO `deck` (deck, cards) VALUES ($deckName, $cards)");

    if ($insert){
        echo 'Successfully saved '. $deckName;
        $conn -> close();
    }

}

?>

此外,当我点击Save Deck提交时,div会刷新,而我认为它不应该是ajax。

我尝试使用click而不是submit,并且console.log从ajax函数正确地返回了所有内容,而div每次都不刷新,但是提交日志不再显示在控制台中。 我从来没有从submit.php的回声中得到任何东西,从来没有。

5 个答案:

答案 0 :(得分:2)

尝试使用preventDefault;,如此

$(document).on('submit','.save',function(e){ 
 e.preventDefault; 

希望它能解决你的问题!

答案 1 :(得分:0)

你必须在字符串值周围加上引号:

<div id="text" class="collapse panel-body">

答案 2 :(得分:0)

如何改变这样的js:

$(".decklist").on("click", ".save", function(){
    $.post("submit.php", { name: deckName }).success(function(){
        console.log('worked');
    });
});

答案 3 :(得分:0)

您需要绑定form提交事件:

$(document).ready(function(){    

        $("#decklist").on('submit',function(e){
            e.preventDefault(); 

            var deckName = $('.deck').val();
            console.log(deckName);

            $.ajax({
                type: "POST",
                url: "submit.php",
                data: { "name": deckName},
                success: function(response) { 
                      console.log('worked')
                }

            });
        });
    }); 

答案 4 :(得分:0)

$(document).ready(function(){

    $("#decklist").on('submit',function(e){
        e.preventDefault(); 

        var deckName = $('#deck').val();
        console.log(deckName);

        $.ajax({
            type: "POST",
            url: "submit.php",
            data: { "name": deckName},
            success: function(response) { 
                  console.log('worked')
            }

        });
    });
}); 

它起作用,改变$('#deck')。val();