【问题标题】:Insert data into mysql database using ajax in php在php中使用ajax将数据插入mysql数据库
【发布时间】:2016-12-08 07:46:51
【问题描述】:

我正在尝试在 php 中使用 ajax 插入值,但数据未插入到数据库中。我从本网站的其他问题中回答的问题中获取了此代码。谁能建议我在哪里犯错了..?

<script>
  $("#submit").click(function() {
                var name= $("#name").val();
                var password= $("#password").val();

                $.ajax({
                    type: "POST",
                    url: "insert.php",
                    data: "name=" + name+ "&password=" + password,
                    success: function(data) {
                       alert("sucess");
                    }
                });


            });

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.0/jquery.min.js"></script>

<?php
    //------insert.php------
     $servername = "localhost";
    $username = "username";
    $password = "password";
    $dbname = "dbname";

    // Create connection
    $conn = new mysqli($servername, $username, $password,$dbname);

    // Check connection
    if ($conn->connect_error) {
        die("Connection failed: " . $conn->connect_error);
    } 


          $name=$_POST['name'];
            $pass=$_POST['password'];
             $sql= mysqli_query($conn,"INSERT INTO insert_tbl(name,pass) VALUES('".$name."','".$pass."')");

 ?>

【问题讨论】:

  • 您看到alert() 消息的成功了吗?
  • 不..我不能..@showdev
  • 您的表单可能在 AJAX 触发之前通过其默认操作提交。在click 处理程序的末尾尝试return false;prevent the default action。另外,您是否在浏览器控制台或服务器日志中看到任何错误?
  • html alert("sucess"); to alert(data); / insert.php:哪里有回报?为成功,稍后添加 $sql 为echo "success";
  • @showdev 确实意味着在 $("#submit").click(function() {}); 中添加 return false还是我应该添加另一个js。? ..nop没有错误..这是主要问题..

标签: javascript php jquery mysql ajax


【解决方案1】:
<script>
  $("#FORM_ID").submit(function() {
                var name= $("#name").val();
                var password= $("#password").val();

                $.ajax({
                    type: "POST",
                    url: "insert.php",
                    data: "name=" + name+ "&password=" + password,
                    success: function(data) {
                       alert("sucess");
                    }
                });


            });
</script>

也可以加载

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.0/jquery.min.js"></script>

在你的脚本标签之前或使用

 <script>
$(document).ready(function(){
      $("#FORM_ID").submit(function() {
                    var name= $("#name").val();
                    var password= $("#password").val();

                    $.ajax({
                        type: "POST",
                        url: "insert.php",
                        data: "name=" + name+ "&password=" + password,
                        success: function(data) {
                           alert("sucess");
                        }
                    });


                });
        });
    </script>

【讨论】:

  • 只是为了澄清 OP,请注意事件从 click 更改为 submit
【解决方案2】:

这是插入数据的html表单

<form id="frmrecord" method="post">
    <input type="text" name="txtusermame" />
    <input type="password" name="txtpassword" />
    <input type="submit" value="Insert" />
</form>

使用此代码调用insert.php文件插入数据

jQuery(document).ready(function ($) {

    $("#frmrecord").submit(function (event) {
                event.preventDefault();
                //validation for login form
        $("#progress").html('Inserting <i class="fa fa-spinner fa-spin" aria-hidden="true"></i></span>');

            var formData = new FormData($(this)[0]);
            $.ajax({
                url: 'insert.php',
                type: 'POST',
                data: formData,
                async: true,
                cache: false,
                contentType: false,
                processData: false,
                success: function (returndata) 
                {
                    //show return answer
                    alert(returndata);
                },
                error: function(){
                alert("error in ajax form submission");
                                    }
        });
        return false;
    });
});

调用file后可以在php文件Insert.php中接收数据

<?php 
  $usernmae=$_POST['txtusername']; 
  $password=$_POST['password']; 
  $sql= mysqli_query($conn,"INSERT INTO insert_tbl(name,pass) 
    VALUES('".$usernmae."','".$password."')");
 ?>

Download Demo

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-12
    • 2015-05-21
    • 2015-03-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多