2010-08-28 72 views
1

在我的朋友頁面,當你接受一個用戶,它發出了一個Ajax調用相同的輸入「身份證」:PHP/Java腳本:在同時

function MeYouFriendNB(confirm){ 
var c = confirm ? 'confirm' : 'ignore'; 
var fID = $('.fID').val(); 

    $.ajax({ 
     type: "POST", 
     url: "misc/AddFriend.php", 
    data: { 
    mode: 'ajax', 
     friend: c, 
    uID : $('#uID'+fID).val(), 
    fID : $('#fID'+fID).val(), 
     bID : $('#bID'+fID).val() 
    }, 
     success: function(msg){ 
$('#friend'+fID).slideUp('slow'); 
$('#Friendlist').prepend(msg); 
$('#theNewFriend').slideDown('slow'); 
     } 
    }); 
} 

在每個朋友的要求,還有對功能的鏈接:

<?php 
while($showW = mysql_fetch_array($friendsWaiting)){ 
echo "<div id='friend".$showW['id']."' style='position: relative; background: #3a5f6e;'>"; 
?> 
     <input type="hidden" name="fID" class="fID" value="<? echo $sInfo["id"]; ?>"> 
    <input type="hidden" name="uID" id="uID<? echo $showW["id"]; ?>" value="<? echo $sid; ?>"> 
<input type="hidden" name="fID" id="fID<? echo $showW["id"]; ?>" value="<? echo $showW["id"]; ?>"> 
<input type="hidden" name="bID" id="bID<? echo $showW["id"]; ?>" value="<? echo $showW["bID"]; ?>"> 

    <?php 
echo "<div style='position: absolute; top: 15px; right: 105px;'> 
<a href='javascript:void(0);' onclick='MeYouFriendNB(true);' style=' margin-right: 45px; color: #FFF;'>Bekräfta</a> 
<a href='javascript:void(0);' onclick='MeYouFriendNB(false);' style='color: #ccc;'>Ignorera</a></div>"; 
} 
?> 

但是每次發送ajax調用時,都會給每個friendrequest提供相同的fID,bID和uID。因此,例如,如果我有5個好友請求,它們都具有相同的fID,uID和bID。

正如你所看到的,我試圖通過在id的fID,uID和bID中添加<? echo $showW["id"]; ?>來使bID和uID和fID的id唯一,並且在函數中,我做了一個var fID來檢查類。 FID法的ID,他們都有......不過這沒有工作了,但它仍然發送相同的ID,以Ajax調用

希望你能幫助我

+0

如果你看看該頁面的html源代碼,設置值是否設置正確? – Mischa 2010-08-28 14:16:42

+0

是的,他們做... – Karem 2010-08-28 14:20:53

+0

另外,你是否需要所有隱藏的輸入?爲什麼不通過參數直接將值傳遞給函數? – Mischa 2010-08-28 14:21:08

回答

0

我會做這樣的:(不知道這雖然解決您的問題)

的Javascript:

function MeYouFriendNB(confirm, uID, fID, bID){ 
    var c = confirm ? 'confirm' : 'ignore'; 

    $.ajax({ 
     type: "POST", 
     url: "misc/AddFriend.php", 
     data: { 
      mode: 'ajax', 
      friend: c, 
      uID: uID, 
      fID: fID, 
      bID: bID 
     }, 
     success: function(msg){ 
      $('#friend'+fID).slideUp('slow'); 
      $('#Friendlist').prepend(msg); 
      $('#theNewFriend').slideDown('slow'); 
     } 
    }); 
} 

PHP:

<?php while($showW = mysql_fetch_array($friendsWaiting)): ?> 
    <div id="friend<?php echo $showW['id']; ?>" style="position: relative; background: #3a5f6e;"> 
     <div style="position: absolute; top: 15px; right: 105px;"> 
      <a href="javascript:void(0);" onclick="MeYouFriendNB(true, <?php echo $showW["id"]; ?>, <?php echo $showW["bID"]; ?>, <?php echo $sid; ?>);" style="margin-right: 45px; color: #FFF;">Bekräfta</a> 
      <a href="javascript:void(0);" onclick="MeYouFriendNB(false, <?php echo $showW["id"]; ?>, <?php echo $showW["bID"]; ?>, <?php echo $sid; ?>);" style="color: #ccc;">Ignorera</a> 
     </div> 
    </div> 
<?php endwhile; ?> 
+0

Niceone,謝謝! – Karem 2010-08-28 14:53:41

+0

不客氣! – Mischa 2010-08-28 14:54:44

1

你沒有打開PHP腳本正確標籤。如果你需要短標籤,你可以使用

<?=$sInfo["id"]; ?> 

當然,你應該避免,如果可能的話。否則,它應該是

<?php echo $sInfo["id"]; ?> 
+0

沒有這種情況.. – Karem 2010-08-28 14:12:00