我的 ajax 代码不会将数据发送到数据库


My ajax code don't send the data to the database

我想使用 ajax 在数据库中添加数据,但没有任何反应我不知道在 Ajax 中有什么问题!或者在 PHP 中有什么问题这是我代码的一部分:

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
    <script type="text/javascript" >
          $(document).ready(function(){
        $("#commentForm").submit(function(){
            var U_N = $('input[name="U_N"]').val();
            var I_name = $('input[name="I_name"]').val();
            var context = $("#inputmessage").val();
            $.ajax({
                type: "POST",
                cache: false,  
                url : "aAddComm_Menu.php",
                data : {U_N:U_N,I_name:I_name,context:context},
            });
    });
    });//end of document ready function             
                </script>

这是 HTML 表单:

<form class="form-horizontal" role="form" id="commentForm" method="POST" action="">
                        <div class="form-group">
                            <label for="inputmessage" class="col-sm-2 control-label">comment</label>
                            <div class="col-sm-10">
                                <textarea name = "context" class="form-control" id="inputmessage"  rows="3" placeholder="Enter your comment here . . "></textarea>
                            </div>
                        </div>  <!-- End of /.form-group -->

                        <input type="hidden" value = "$Item['Item_Name']" name="I_name"/>
                        <input type="hidden" value ="$U_N"  name="U_N"/>
                        <div class="form-group">
                            <div class="col-sm-offset-2 col-sm-10">
                                <button name="SendC" type="submit" class="btn btn-primary" ;>Send</button>
                            </div>


                        </div>  
                    </form> 

这是用于添加到数据库的 PHP 页面的一部分

extract($_POST)
if(isset($context))
{
    mysql_query("INSERT INTO menu_commnet VALUES('$I_name','$U_N',NULL,NOW(),'$context')");
}
var U_N = $("input#U_N").val();
var I_name = $("#I_name").val();
var context = $("#context").val();

jQuery选择器是错误的,你没有选择任何东西。#选择器代表id属性,但您尝试按属性的值进行选择name。您应该添加/更改输入字段id属性,或使用

var U_N = $("input[name=U_N]").val();
var I_name = $("input[name=I_name]").val();
var context = $("[name=context]").val();

提示:下次在浏览器中使用开发者控制台时,您可以轻松测试选择器是否正确。您可以像在文件中一样输入 javascript 代码.js并测试它是否像您预期的那样工作。

另外,不要在 PHP 中执行此操作,请使用预准备语句。

您是否在

后端脚本中包含数据库连接?摘录($_POST)

'if(isset($context)) {
 mysql_query("INSERT INTO menu_commnet VALUES('$I_name','$U_N',NULL,NOW(),'$context')");
 }'

我认为在这里你应该包括你的数据库信息,'include_once("数据库信息.php"); ,还要确保你 ajax 会返回一个结果,并回显 PHP 错误,只是为了确保它是 ajax 或 php 错误,

我对你的问题几乎没有评论:

  1. $("document").ready(function(){替换为 $(document).ready(function(){
  2. 在 PHP 中提取之前, 试试var_dump($_POST)
  3. 根据您的 HTML 代码使用情况:

    var U_N = $('input[name="U_N"]').val();

    var I_name = $('input[name="I_name"]').val();

    var context = $("#inputmessage").val();

这是最后的工作示例。只需添加"ev"参数即可提交回调函数,然后在其中使用ev.preventDefault()。

 $(document).ready(function(){
            $("#commentForm").submit(function(ev){
                ev.preventDefault();
                var U_N = $('input[name="U_N"]').val();
                var I_name = $('input[name="I_name"]').val();
                var context = $("#inputmessage").val();
                $.ajax({
                    type: "POST",
                    cache: false,
                    url : "aAddComm_Menu.php",
                    data : {U_N:U_N,I_name:I_name,context:context}
                });
            });
        });//end of document ready function
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<form class="form-horizontal" role="form" id="commentForm" method="POST" action="">
    <div class="form-group">
        <label for="inputmessage" class="col-sm-2 control-label">comment</label>
        <div class="col-sm-10">
            <textarea name="context" class="form-control" id="inputmessage" rows="3"
                      placeholder="Enter your comment here . . "></textarea>
        </div>
    </div>
    <input type="text" value="" name="I_name"/>
    <input type="text" value="" name="U_N"/>
    <div class="form-group">
        <div class="col-sm-offset-2 col-sm-10">
            <button name="SendC" type="submit" class="btn btn-primary">Send</button>
        </div>
    </div>
</form>