我一直在寻找答案,但就今天而言,没有人找到:
我正在尝试实现一些 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});
但是,什么都没有改变,
有人有想法吗?
最好的,纽本