2012-05-19 109 views
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> 

当我检查铬的开发人员工具,我可以看到ID和名称属性设置正确。

这里是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和相应的值到一个PHP脚本,但即时得到错误user_id说明。另外我知道有另一个同名的问题,但我检查了它并没有帮助。

+0

检查是否正在加载jQuery。 –

回答

1

你不能参考game_id那样。 game_idout_data对象中的索引。

要提醒正确的值,你不得不使用:

alert(out_data['game_id']); 

我也建议用引号包裹你的对象的索引 - 只是为了让多一点的可读性 -

var out_data = { 
    'game_id' : $(widget).attr('id'), 
    'user_id' : $(widget).attr('name') 
}; 
+0

这不是答案,但它使我正确的答案,所以我想你会得到接受的答案 – hugoismyname

+0

@ hugoismyname如果这不是问题,你能解释是什么问题? –

1

你把JavaScript放在里面了吗?

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

您的JavaScript必须在您的PHP完成生成HTML之前运行。

+0

是的,我做得很好,我用$(function() – hugoismyname

相关问题