通过AJAX发送数据不起作用 - 为什么?

时间:2017-04-07 09:36:45

标签: jquery ajax

我正在创建一个jQuery函数,通过AJAX发送一些数据,然后用结果打开一个div:

<div class="comments_div" id="comments_div" data-id='<?php echo $post_id; ?>' "> 
  More Comments--->
  <div class="comments_more_<?php echo $post_id; ?>" id="comments_more"> 
$(function() {
  $(".comments_div").click(function() {
    var post_id = $(this).attr('data-id');       
    $.ajax({
      url: "jscripts/comment_query.php",
      type: "POST",
      data: post_id,
      success: function(datos) {
        $('.comments_more_' + post_id).html(datos);
        $('.comments_more_' + post_id).show('slow');
        //alert(post_id);
      }
    });
  });
})

alert(post_id)显示正确的post_id。但由于某种原因,它不会发送数据。

comment_query.php:

<?php
    echo 'post_id: ';
    echo $_POST['post_id'];
?>

div comment_more打开并显示文本&#34; post_id:&#34; (但不是变量)。

1 个答案:

答案 0 :(得分:1)

问题是因为您在请求中发送post_id值时未提供密钥。data: 'post_id=' + post_id,

您可以使用form-urlencoded格式执行此操作:

data: { post_id: post_id },

或者,更优选地,通过提供jQuery将为您序列化和编码的对象:

log1