我正在尝试使用jquery和ajax传递一些变量,但由于某种原因它无法正常工作。这是代码。
<div id=' . $result['game_id'] . ' name="' . $user_id . '" class="rate_widget" >
<div class="star_1 ratings_stars"></div>
<div class="star_2 ratings_stars"></div>
<div class="star_3 ratings_stars"></div>
<div class="star_4 ratings_stars"></div>
<div class="star_5 ratings_stars"></div>
<div class="total_votes">vote data</div>
</div>
当我检查chrome的开发人员工具时,我可以看到id和name属性设置正确。
这是javascript(使用jquery)我放了一个警告框,看看是否设置了值,但我得到了未定义。刚开始学习ajax和jquery,本周任何帮助都会受到赞赏。
$('.rate_widget').each(function() {
var widget = this;
var out_data = {
game_id : $(widget).attr('id'),
user_id : $(widget).attr('name')
};
alert(game_id);
$.post(
'ratings.php',
out_data,
function(INFO) {
$(widget).data( 'fsr', INFO );
set_votes(widget);
},
'json'
);
如果它不明确我试图发送带有相应值的game_id和user_id到PHP脚本,但我得到错误。另外我知道还有另一个同名的问题,但我检查过它并没有帮助。
答案 0 :(得分:1)
您无法像这样引用game_id
。 game_id
是out_data
对象中的索引。
要提醒您必须使用的正确值:
alert(out_data['game_id']);
我还建议用引号包装你的对象索引 - 只是为了让它更具可读性 -
var out_data = {
'game_id' : $(widget).attr('id'),
'user_id' : $(widget).attr('name')
};
答案 1 :(得分:1)
你把你的javascript放在这个吗?
$( document ).ready( function(){
// .. your code
})
你的javascript必须在php完成生成html之前运行。