我一直在寻找答案,但就今天而言,没有人找到答案:
我正在尝试实现一些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
答案 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>