问题已解决!!!
怎么样?
首先,错误是这一个:
数据:'rate'+ $('rate')。val(),
需要改变的是你所有人告诉我的权利:
数据:'rate ='+ rate或data:{rate:rate},
但是我的服务器设置也存在另一个问题,它需要(我不知道原因)是php文件的absolt URL而不是亲戚。
感谢您的所有时间和您的帮助!
我在使用评级脚本的onclick元素时遇到了一些麻烦。当用户单击其中一个字段时,应通过ajax post方法发送该值。
<li id="rating-boxes-rate" onclick="rateFunction(1)"></li>
<li id="rating-boxes-rate" onclick="rateFunction(2)"></li>
<li id="rating-boxes-rate" onclick="rateFunction(3)"></li>
<li id="rating-boxes-rate" onclick="rateFunction(4)"></li>
<li id="rating-boxes-rate" onclick="rateFunction(5)"></li>
javsscript代码:
function rateFunction(rate){
$.ajax({
url: '../rate.php', //rate.php location in parent folder
type: 'POST',
data: 'rate' + $('rate').val(),
success: function(html){
alert('Rating: ' + rate); //just to check, will be deleted later
$('#message_success').html(html); //message div id located in my html to show the outcome
}
});
return false;
}
此时警报显示正确但不幸的是数据没有发送到rate.php,此时这是一个简单的测试回声语句:
$rate = $_POST['rate'];
echo $rate;
有没有人看到我的代码出错的地方?提前谢谢。
答案 0 :(得分:2)
我不认为$('rate').val()
表示任何意义;并且你想将速率值如-1,2,3 ..传递给php。
所以试试这个 -
data: {
rate: rate
},
而不是 -
data: 'rate' + $('rate').val(),
在旁注中,您不应使用unobtrusive javascript -
你可以这样做 -
<li id="rating-boxes-rate" rate="1"></li>
...
<script>
$("#rating-boxes-rate").click(function(e) {
var rate=$(this).attr('rate');
$.ajax({
url: '../rate.php', //rate.php location in parent folder
type: 'POST',
data: {rate: rate},
success: function(html){
alert(html);
}
});
});
答案 1 :(得分:1)
传递data
一个json
。
data: {
rate : rate
}
请注意,它始终为key
,然后是value
例如
<input type="text" id="foo_bar" />
data : {
foo : "bar",
foobar : $("#foo_bar").val()
}
然后在你的PHP中
$foo = $_POST["foo"]
$foobar = $_POST["foobar"]
echo $foo; // shows bar
echo $foobar; // shows the value of the text box
答案 2 :(得分:1)
检查一下 -
function rateFunction(rate){
$.ajax({
url: '../rate.php', //rate.php location in parent folder
type: 'POST',
data: { rate : rate},
success: function(html){
alert('Rating: ' + this_rate); //just to check, will be deleted later
$('#message_success').html(html); //message div id located in my html to show the outcome
}
});
return false;
}
答案 3 :(得分:1)
选择器$('rate')
正在尝试查找类型为rate
的节点,该节点很可能在您的标记中不存在。
由于您将费率作为参数传递给函数,为什么不直接将其传递给ajax请求?
$.ajax({
url: '../rate.php',
type: 'POST',
data: {"rate": rate},
success: function(response) {
alert(response);
}
});
答案 4 :(得分:1)
请尝试
data
{
rate:rate
},
它会起作用
答案 5 :(得分:1)
而不是
data: 'rate' + $('rate').val()
使用
data: {'rate': rate}
或
data: 'rate=' + rate