0

ソーシャル デート サイトを作成しようとしていますが、[友達として追加] ボタンに問題があります。クリックすると、私のサイトは送信者の uid (from_uid) と受信者の uid (to_uid) をデータベースに送信する必要があります。from_uid は正常に送信されますが、to_uid は常に 0 を送信します。

PHP

<div class="member" data-user="<?php echo $member['xmpp_user']; ?>" data-uid="<?php echo $member['uid']; ?>">
  <input type="hidden" id="hiddenuid" value="<?php echo $member['uid']; ?>">
  <img src="https://s3.amazonaws.com/wheewhew/user/<?php echo $member['uid']; ?>/photos/<?php echo $member['profile_pic']; ?>" />
  <div class="member_name"><?php echo $member['firstname']." ".$member['lastname']; ?></div>
  <div id="addbutton"><button type="submit" class="add"> Add as Buddy </button></div>
</div>

Javascript

<script type="text/javascript">
   var BOSH_SERVICE = 'http://wheewhew.com:5280/http-bind';
   var connection   = null;
   var xmpp_user    = "<?php echo $xmpp_user; ?>@wheewhew.com/default";
   var xmpp_pass    = "<?php echo $xmpp_password; ?>";
   var uid          = "<?php echo $uid; ?>";

   $(document).ready(function () {              
     $('#btn-logout').click(logout);
     $('.add').click(addBuddy);
     connectXMPP();
     //updateLastSeen();
   });

</script>

jabber.js

function addBuddy(){
  var xmpp_user = $(this).parent().attr('data-user')+'@wheewhew.com/default';
  var to_uid = $(this).parent().attr('data-uid');

  $.ajax({
    type: "POST",
    url: "./ajax/addBuddy",
    data: "from_uid="+uid+"&to_uid="+to_uid,

    success: function(data) {
      var ret = eval('('+data+')');
      if(ret.status == 'success'){
        connection.send($pres({to:xmpp_user,type:'subscribe'}).tree());
      }
    }

  });
}
4

1 に答える 1

0

あなたのaddBuddy関数は、何が何で$(this)あるかについての参照を持っていません。これを試してください:

$('.add').click(function(){
     addBuddy($(this));
});

そして、あなたの機能で:

function addBuddy($btn){
    var xmpp_user = $btn.parent().attr('data-user')+'@wheewhew.com/default';
    var to_uid = $btn.parent().attr('data-uid');

    // ajaxy stuff
}

それは役立つはずです。少なくとも、OP のコメントではなく、ここで議論を続けることができます。

于 2013-04-24T17:24:46.273 に答える