0

我正在尝试使用 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 脚本,但我得到了错误。另外我知道还有另一个同名的问题,但我检查了它并没有帮助。

4

2 回答 2

1

你把你的javascript放在里面了吗?

$( document ).ready( function(){
     // .. your code
})

您的 javascript 必须在您的 php 完成生成 html 之前运行。

于 2012-05-19T20:13:31.017 回答
1

你不能这样引用game_idgame_idout_data对象中的索引。

要提醒您必须使用的正确值:

alert(out_data['game_id']);

我还建议用引号括起你的对象索引——只是为了让它更具可读性——

var out_data = {
  'game_id' : $(widget).attr('id'),
  'user_id' : $(widget).attr('name')
};
于 2012-05-19T19:28:33.377 回答