Ajax Jquery - 简单的请求没有回答

时间:2012-06-27 15:56:43

标签: php jquery ajax

我一直在寻找答案,但就今天而言,没有人找到答案:

我正在尝试实现一些ajax方法在网页上发布一些评论。我使用像这样的ajax方法:

<button id="my-btn">Make an Ajax request!</button>

<script >
  $('#my-btn').click(function() {
    var comment = $('#id1').val();   
    var m = {$id2};
     var data = new Array();
     data[0]= comment;
    data[1]= m;

    $.post('{$postURL}', data, function(callback_data){

    alert('hello');

    });

  });
</script>

其中m = {$ id2};是因为一个聪明的变量。

alert('hello')有效,但不处理php代码:{$postURL}需要方法comment(){$comment = $_POST[$data[0]]; $m = $_POST[$data[1]];...}

因此,postURL就像:"index.php?post=comment",方法是comment()

当然,当我将{$postURL}替换为"index.php?post=comment"时,在我仍然有alert('hello')消息但方法comment()不处理任何内容的意义上没有任何反应。

这种方法是否被称为?或者是否存在错误的语法,$_POST[$data[0]]$_POST[$data[1]]都不是(通过comment()方法识别。

index.php的工作方式是重定向:到另一个php页面,调用mypage.php,我们可以找到comment()方法。

此外,还有一些非常奇怪的事情:当我$.post("{$postURL}" $.post("{$whatever}"时,我仍然有alert('hello')消息!当我发出警报(callback_data)时,更奇怪;在回调函数中,我收到一条巨大的警报消息,其中包含我的整个php代码......

在一个先例问题中,我被告知要因为Smarty而设置一些分隔符:

$('#my-btn').click(function() {ldelim}
    var comment = $('#id1').val();   
    var m = {$id2};
    var data = {ldelim}
      comment: $('#id1').val(),
      m: {$id2}
    {rdelim};
    $.post("{$postURL}", data, function(callback_data){ldelim}
      alert('hello');
    {rdelim});
  {rdelim});

但是,没有任何改变,

有人有想法吗?

Best,Newben

1 个答案:

答案 0 :(得分:0)

问题可能是您将数据作为javascript数组传递,但它应该是提到here的地图或字符串。 试试这个:

<script >
  $('#my-btn').click(function() {
    var comment = $('#id1').val();   
    var m = {$id2};
       $.post('<?php echo $postURL ?>', {0 : comment,1 : m}, function(callback_data){
            alert('hello');
       });
  });
</script>