嘿伙计们,我是AJAX的新手并且正在制作评级脚本,但我希望能够将多个值传递回我的ajax函数:
现在它运行一个名为评级的PHP脚本,其中它采用投票/投票的总值并将其乘以每个开始的宽度以获得准确的当前评级。我想做的还是回传投票数量,以便我可以展示它们。我知道如何通过制作另一个功能来做到这一点,但这似乎是多余的,而且效率不高。
我的问题是,是否可以不仅传回我的评级框的宽度(值/票数* 22),还可以传回1个查询中的总投票数。如果不是更好的问题,最好在jquery中传回一个已经有投票的字符串& value,用java脚本进行宽度计算?
$(document).ready(function() {
getRating();
function getRating(){
$.ajax({
type: "GET",
url: "../includes/rating.php",
data: "action=get&bookid="+$("#current").attr("value"),
cache: false,
async: false,
success: function($rating) {
$("#current").css({ width: "" + $rating });
},
error: function(result) {
alert("Error");
}
});
}
谢谢!
答案 0 :(得分:3)
是的,您可以传回这两个值。只需使用json_encode而不是文本发送JSON。
$(document).ready(function() {
getRating();
function getRating(){
$.ajax({
type: "GET",
dataType: 'json',
url: "../includes/rating.php",
data: "action=get&bookid="+$("#current").attr("value"),
cache: false,
async: false,
success: function(data) {
$("#current").css({ width: "" + data.rating });
$("#votes").html(data.votes);
},
error: function(result) {
alert("Error");
}
});
}
答案 1 :(得分:1)
如果你努力在一个回调中回传多个值,你可以尝试在值之间插入一个随机字符(比如#,你不会使用的东西)然后在服务器端分割它。例如。
客户端......
var callback = value1##value2##value3;
服务器端......
$values = split($callback, "##");
$value1 = $values[0];
$value2 = $values[1];
希望有帮助...
答案 2 :(得分:1)
由于宽度是基于投票数的派生值,我会通过投票数并在Javascript中进行数学计算。