2010-08-28 4 views
1

Dans ma page d'amis, lorsque vous acceptez un utilisateur, il envoie un appel ajax:PHP/Javascript: entrée même « id » dans tout

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'); 
     } 
    }); 
} 

Sur chaque demande d'ami, il y a un lien vers la fonction:

<?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>"; 
} 
?> 

Mais chaque fois qu'il envoie l'appel ajax, il donne même Fid, et Bid uID, à chaque amiDemander. Donc, par exemple, si j'ai 5 demandes d'amis, elles ont toutes le même identifiant fID, uID et bID. Comme vous pouvez le voir, j'ai essayé de rendre unique l'id de bID et d'uID et fID en ajoutant <? echo $showW["id"]; ?> aux identifiants fID, uID et bID, et dans la fonction, j'ai fait un var fID qui vérifie la classe. Fid pour l'ID, qu'ils ont tous ... mais cela ne marchait pas sur, il envoie toujours les mêmes ids à l'appel ajax

espérons que vous pouvez me aider

+0

Si vous regardez la source html de cette page, les valeurs sont-elles définies correctement? – Mischa

+0

Oui, ils le font ... – Karem

+0

Aussi, avez-vous besoin de toutes les entrées cachées? Pourquoi ne pas passer directement les valeurs à la fonction via les paramètres? – Mischa

Répondre

0

je le ferais comme ceci: (pas sûr si cela résout votre problème si)

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, merci! – Karem

+0

De rien! – Mischa

1

vous n'êtes pas ouvrez le script PHP balises correctement . Si vous avez besoin des balises courtes, vous pouvez utiliser

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

Bien sûr, vous devriez éviter cela si possible. Sinon, il devrait être

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

Wasnt le cas .. – Karem

Questions connexes