2012-05-19 128 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

相關問題