PHP Javascript变量问题

时间:2011-05-24 22:01:59

标签: php javascript jquery ajax

我的PHP页面中有一个while循环,我看下面的内容......

    print $divLeft.strip_tags($row->twitterUser)."?size=normal\"/><br \/>".$row->twitterUser.$divRight."<a href='javascript:void(0);' id='vote_$row->id' class='getPoint'>Get " .$row->coff. "<input type='hidden' value='$row->coff' id='credoff'/> credit(s)</a><br /></div>$clearDiv</div></div>"; 

我在隐藏字段中设置了值,然后我在javascript中调用...

{        
   var theid = $(this).attr("id");
   var onlyID = theid.split("_");
   var onlyID = onlyID[1];
   credoff = $("#credoff").val();


    $.ajax({            
      url: 'do.php',
      type: 'POST',          
      data: "userID=" + onlyID,
      success: function(data) {
          if(data != "success1" && data != "success5") {
               $("#" + theid).text(data);  
          }else{

              $("#thediv_" + onlyID).fadeOut("slow");
              $('#creditsBalance').fadeOut("slow");
              newbalance = parseInt($('#creditsBalance').text());

          if(data != "success5") { 
              alert('Credits offered = '+credoff);

唯一的一点就是在我的javascript中它抓住了页面上最高的'credoff'变量值,而不是单击的那个,这有意义吗?

2 个答案:

答案 0 :(得分:0)

首先,$('#credoff')是一个ID ...并且ID对于页面是唯一的。其次,如果有多个(并通过CSS选择器正确构建),你调用$('#credoff')的方式只会给你第一个的值,因为你没有将它与事件目标。

因为它在结构上看起来像输入是一个孩子(也很奇怪,顺便说一句),你需要使用这样的选择器来获得credOff:

$('.getPoint').click(function(){
    // properly associated with the event target.
    var credOff = $(this).find('input').val();
    // etc.
}

答案 1 :(得分:0)

元素ID在整个页面中必须是唯一的;如果不是,那么尝试按ID选择是不确定的。你最好的选择是使用这样的东西:

<input type="hidden" ... class="credoff" />

然后在javascript中这样:

credoff = $(this).children('input.credoff:hidden').val()