我试图通过ajax发送两个值,但问题是它只在mozilla中发送一个值
我的ajax
$('#post_submit').click(function() {
event.preventDefault();
var great_id = $("#post_container_supreme:first").attr("class");
var poster = $("#poster").val()
$.ajax({
type: "POST",
url: "post_update.php",
data: 'poster='+ poster + '&great_id=' + great_id, //the value in great id is not being sent to the php page
beforeSend: function() {
$("#loader_ic").show();
$('#loader_ic').fadeIn(400).html('<img src="data_cardz_loader.gif" />').fadeIn("slow");
},
success: function(data) {
$("#loader_ic").hide();
$("#new_post").prepend(data);
$("#poster").val('');
}
})
})
})
答案 0 :(得分:1)
您可能会遇到一些可能导致问题的编码错误。在第1行,您尚未定义变量event
,它属于lambda函数的参数列表。改变这个:
$('#post_submit').click(function(event) {
第4行第二,你最后错过了;
,以及在ajax调用之后和最后一行。
答案 1 :(得分:1)
尝试更换第8行
data: 'poster='+ poster + '&great_id=' + great_id, //the value in great id is not being sent to the php page
用这个:
data: {"poster": $("#poster").val(),"great_id": $("#post_container_supreme:first").attr("class")},
我正在做的是将数组传递给带有两个数据元素名称和值的ajax调用。
很明显你也错过了第4行的分号。
var poster = $("#poster").val() ;
答案 2 :(得分:1)
data
的将接受普通的JavaScript对象JQuery.ajax()
参数预期而不是字符串。它将序列化对象并使其成为一个字符串(如果它还没有)。这是等效的(但可能无济于事,因为我已经知道你的方法也应该有效):
var dataToSend = {
poster: $("#poster").val(),
great_id: $("#post_container_supreme:first").attr("class")
}
$.ajax({
type: "POST",
url: "post_update.php",
data: dataToSend
beforeSend: function() {
$("#loader_ic").show();
$('#loader_ic').fadeIn(400).html('<img src="data_cardz_loader.gif" />').fadeIn("slow");
},
success: function(data) {
$("#loader_ic").hide();
$("#new_post").prepend(data);
$("#poster").val('');
}
});