Php 使用ajax发送数组

Php 使用ajax发送数组,php,jquery,ajax,arrays,Php,Jquery,Ajax,Arrays,我使用ajax发送这个数组 代码jquery: $("#btnReact").on("click", function (e) { var post = {}; post["comment"] = $("#bug_message").val(); post["id"] = $(this).data("bid"); var request = $.ajax({ url: "ajax/save_comment.php", type:

我使用ajax发送这个数组

代码jquery:

$("#btnReact").on("click", function (e) {
    var post = {};
    post["comment"] = $("#bug_message").val();
    post["id"] = $(this).data("bid");


    var request = $.ajax({
        url: "ajax/save_comment.php",
        type: "POST",
        data: {
            post: post
        },
        dataType: "json"
    });

    request.done(function (msg) {
        if(msg.status == "success") {

        }
    });

    request.fail(function (jqXHR, textStatus) {
        alert("Request failed: " + textStatus);
    });

    e.preventDefault();
});
但是我无法用php访问我的数据,当我试图将这些数据发送到我的类时,我不断地出错

php代码:

if(isset($_POST["post"]))
    {
        try
        {
            $comment = $_POST['post']["comment"];
            $id = $_POST['post']["id"];


            $comment = new Comment();
            $comment->Comment = $comment;

            $comment->SaveComment($id);
            $feedback['status'] = "success";
        }
        catch(Exception $e)
        {
            $feedback['message'] = $e->getMessage();
            $feedback['status'] = "error";

        }
        header('Content-Type: application/json');
        echo json_encode($feedback);
    }
我的语法有什么问题吗?还是别的什么问题

试试这个:

    jQuery(document).ready(function(){
    $("#btnReact").on("click", function(e){
        var post = {};
        post["comment"] = $("#bug_message").val();
        post["id"] = $(this).data("bid");


        var request = $.ajax({
      url: "ajax/save_comment.php",
      type: "POST",
      data: {post : post},
      dataType: "json"
    });

    request.done(function(msg) {
        if(msg.status == "success"){

        }
    });

    request.fail(function(jqXHR, textStatus) {
      alert( "Request failed: " + textStatus );
    });

    e.preventDefault();
    });
    });

唯一的区别是我将您的代码放在
jQuery(document).ready(function(){})中

为什么不在数据选项中发布对象而不是对象内部的对象呢

 var request = $.ajax({
   url: "ajax/save_comment.php",
   type: "POST",
   data: post,
   dataType: "json"
 });
就当是

if(isset($_POST["comment"]) && isset($_POST["id"]))
{
    try
    {
       $comment=$_POST['comment'];
       $id = $_POST["id"];
       ......

JavaScript错误或PHP错误?“我一直在出错…”我们有没有可能也会出错?我觉得你错过了一个json_解码,但我没有访问PHP服务器的权限sure@JasonSperske:他为什么需要
json\u decode
?@J.Bruni:jQuery将对象编码为查询字符串,它在PHP中成为一个数组;这是正确的。虽然这是一个有效的建议,但这是一个怎样的答案呢?我不知道。。。数据选项看起来很奇怪,虽然这可能不是问题所在,但我想最好还是向OP报告其他更简单的方法……所以我发布了。。我认为很难在评论中提及所有这些……这是一个外部脚本,在不添加文档的情况下运行良好ready@MarnixVerhulst:那么,有什么问题吗?