如何使用Jquery ajax和php将数据插入mysql数据库?

时间:2016-09-11 12:39:08

标签: php jquery ajax

我正在尝试学习Ajax。我通过PHP从Html表单插入一些数据到mysql数据库。它工作得很好。但我的ajax部分不起作用。我得到了成功消息,但数据不会转到我的php文件。我的html和js代码:

<!DOCTYPE html>
<html>
<head>
    <title>Insertion of data with Ajax</title>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js">    </script>
</head>
<body>
    <form id="myForm" method="POST" action="ajax-save.php">

    Title: <input type="text" name="title" id="title"><br /><br />
    Description: <textarea name="description" id="description" rows="20" cols="40"></textarea><br /><br />
    Url: <input type="text" name="url" id="url"><br /><br />

    <input type="submit" id="submit" name="submit" value="submit">

    </form>

    <script>

     $(document).ready(function(){

       $("#submit").click(function(){
       $.ajax({
            url: 'ajax-save.php',
            async: true,
            cache: false,
            data: $('#myForm').serialize() ,
            type: 'POST',
            success: function(){
            alert("success");
            clearForm();
            }
        }); 
           return false;
       });

    });

   </script>

</body>
</html>

我的php代码工作正常。我没有ajax测试过它。这是我的PHP代码。

    $conn = mysql_connect('localhost', 'root', '');
    $db = mysql_select_db('hospital');

    if (isset($_POST['title'])) { $title = $_POST['title'];}
    if (isset($_POST['description'])) { $description = $_POST['description'];}
    if (isset($_POST['url'])) { $url = $_POST['url'];}

    if(isset($_POST['submit'])){
        if(mysql_query("insert into `wp_upload_video` (`id`, `title`, `description`, `url`) values (NULL, '$title', '$description', '$url')"))
            echo "Successfully Inserted";
        else
            echo "Insertion Failed";
    }

请让我知道我的错在哪里。

1 个答案:

答案 0 :(得分:0)

当您通过单击submit按钮通过ajax提交时......该条件总是为真。

检查PHP中是否设置$_POST['submit']始终导致 true ,因为如果它为真,那么ajax永远不会得到处理。

所以...删除PHP中的if submit条件并在ajax调用中处理错误通知。

另外,正如@NiettheDarkAbsol在评论中所指出的那样,将e.preventDefault()添加到jquery也是一个好主意,以便像往常一样停止提交表单的提交按钮并允许jquery处理提交(通过ajax)。