私は答えを探していましたが、今日まで誰も見つかりませんでした:
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});
でも、何も変わらず、
誰にもアイデアがありますか?
ベスト、ニューベン