私は答えを探していましたが、今日まで誰も見つかりませんでした:
Webページにコメントを投稿するために、いくつかの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}; これは smarty 変数によるものです。
動作します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()
このメソッドは呼び出されますか? または、comment() メソッドで$_POST[$data[0]]and are(t が認識されない)などの間違った構文があります。$_POST[$data[1]]
index.php が動作する方法は、リダイレクトすることです: 別の php ページに、それを mypage.php と呼び、そこでメソッドを見つけることができますcomment()。
さらに、何か非常に奇妙なこと$.post("{$postURL}"が$.post("{$whatever}"ありalert('hello')ます。さらに奇妙なのは、alert(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});
でも、何も変わらず、
誰にもアイデアがありますか?
ベスト、ニューベン