ajax没有向php发送帖子请求

时间:2015-11-05 20:47:09

标签: javascript php ajax

Javascript不会将任何帖子数据发送到php文件

$(document).ready(function(){
                function showComment(){
                  $.ajax({
                    type:"post",
                    url:"process.php",
                    data:"action=showcomment",
                    success:function(data){
                         $("#comment").html(data);
                    }
                  });
                }
                showComment();
$("#button").click(function(){
                      var name = $("#name").val();
                      var message = $("#message").val();
                      var dataString = "name="+name+"&message="+message+"&action=addcomment";
                      $.ajax({
                          type:"post",
                          url:"process.php",
                          data:dataString,
                          success:function(data){
                            showComment();

                          }

                      });

                });
});

形式:

<form action="" method="POST" enctype="multipart/form-data">
           name : <input type="text" name="name" id="name"/>
           </br>
           message : <input type="text" name="message" id="message" />
           </br>
           <input type="submit" value="Post" name="submit" id="button">
           <div id="info" />
           <ul id="comment"></ul>
    </form>

PHP

    $action=$_POST["action"];
if($action=="addcomment"){
    echo "Add comment WORKS!";
}
if($action=="showcomment"){
    echo "default";
}

尝试添加这样的行,就像发布addcomment而不是显示一些单词一样,只是为了测试,因为sql请求没有,但php根本没有显示任何响应,就像根本没有发布任何动作一样。

PS。我真的是新的ajax,所以如果可能的话,请给我一个解决方案来解决它。

2 个答案:

答案 0 :(得分:0)

您正在使用提交按钮,因此它将使表单提交并重新加载,这将绕过您的ajax,您可以更改您的jQuery以侦听表单提交事件,而不是像这样:

$("form").on('submit', function(e){

    // Stop form from submitting
    e.preventDefault();

    var name = $("#name").val();
    var message = $("#message").val();
    var dataString = "name="+name+"&message="+message+"&action=addcomment";
    $.ajax({
        type:"post",
        url:"process.php",
        data:dataString,
        success:function(data){
            showComment();
        }
    });
});

或者只需更改类型=&#34的按钮;提交&#34;输入=&#34;按钮&#34;或用元素替换它。

答案 1 :(得分:0)

您正在使用提交按钮作为Dontfeedthecode提到。您的表单没有任何操作,因此它是自我发布的。我已将动作和id添加到html表单和隐藏字段以传递操作。现在javascript序列化表单并将其发送到process.php。

    $(function () {
        $("#my-form").on("submit", function (e) {
            $("#action").val("addcomment");
            $.ajax(
                {
                    url: this.action,
                    type: this.method,
                    data: $(this).serialize(),
                    success: function (data) {
                        showComment();
                    }
                });
            return false;
        });
    });


<form action="process.php" method="POST" id="my-form" enctype="multipart/form-data">
    <input type="hidden" id="action"  name="action" value="" />

    name : <input type="text" name="name" id="name" />
</br>
message : <input type="text" name="message" id="message" />
</br>
<input type="submit" value="Post" name="submit" id="button">
<div id="info" />
<ul id="comment"></ul>
</form>
相关问题