在下面的代码中,我尝试将2个参数传递给Ajax调用,但是在加载页面时,我收到如下所示的javascript错误。 请注意,甚至在我尝试通过单击按钮触发ajax之前就会发生此错误(下面显示的代码位于工作按钮单击事件处理程序代码中)。
当我注释掉.post()代码块时,页面加载正常,没有任何javascript错误。 下面是代码。这是我第一次在参考这篇文章后如何将2个参数传递给ajax .post()。 Sending Multiple variables with Jquery ajax
有谁能告诉我我的代码有什么问题?我的警报语句都可正常工作并显示正确的数据。请注意我使用Cakephp,因此那里有一些cakephp语法。
//Get the merchant config
alert("you got here!");
bookingdate = $(this).parent().parent().find("#bookingdate").serialize();
merchant_id = $(this).parent().parent().find("#merchant_id").serialize();
alert (bookingdate + " " + merchant_id);
$.post( "<?php echo Router::url(array('controller'=>'MCP','action'=>'getMtRestaurant')); ?>", {bookingdate, merchant_id}, function() {
})
.done(function(data) {
alert(data.response);
//parseddata = JSON.parse(data);
$('.ajax_booking_edit').append(data);
})
.fail(function() {
alert( "There was a problem retrieving the booking!" );
})
.always(function() {
//alert( "finished (always)" );
});
我在警告弹出窗口下方显示序列化后显示bookingdate和merchant_id。
答案 0 :(得分:1)
如果传递一个值,则可以使用技巧。
示例:
var msg = $arg1 + "--" + $arg2 + "--" + $arg3;
$.post("../Php/test.php", { msg: msg },
function (result) {
alert(result);
});
在php文件中,
<?php
$msg = $_POST['msg'];
$ar = explode("--", $msg);
//Now we have $ar[0] --> arg1, $ar[1] --> $arg2, $ar[2] --> $arg3
?>
希望这有帮助。
答案 1 :(得分:0)
尝试
serialize()
他们俩在一起。
var bookingdate = $(this).parent().parent().find("#bookingdate"),
merchant_id = $(this).parent().parent().find("#merchant_id"),
filterdata = bookingdate.add(merchant_id).serialize();
$.post("<?php echo Router::url(array('controller'=>'MCP','action'=>'getMtRestaurant')); ?>",
filterdata, function () {})
答案 2 :(得分:0)
如果您通过jQuery发送POST,则需要为您正在使用的变量选择变量名称。修复很简单,只需将行更改为:
$.post( "<?php echo Router::url(array('controller'=>'MCP','action'=>'getMtRestaurant')); ?>", {bookingDate: bookingdate, merchantId: merchant_id}, function() {