2016-03-02 63 views
0

所以我有一个表,其中显示我的游戏服务器上的所有在线玩家和我有安装一个脚本,可以巴掌,踢,他们静音等,我想用JS有一个下拉列表在在线玩家表,让我巴掌,踹memnu,他们静音等,但我不知道如何$ playerid变量POST到脚本,使其掴球员。发布PHP变量点击

这里是我的表 当巴掌踢或静音按钮被点击我想它张贴$ playerid到Q3/slap.php文件

http://i.stack.imgur.com/lou3N.png

这里是我的代码

function slap(){ 
 
    
 
    var playerid = $("#playerid").val(); 
 
    
 
    $.post("../q3/slap.php", { playerid: playerid }, function (data) { 
 
    }); 
 
\t return false; 
 
}
\t \t echo "<td align=center> $team </td>"; 
 
\t \t echo "<td align=center><a href='user.php?id=".$row["DBID"]."' > $name </a></td>"; 
 
\t \t echo "<td align=center> $group </td>"; 
 
\t \t echo "<td align=center> $score </td>"; 
 
\t \t echo "<td align=center> $ip </td>"; 
 
\t \t echo "<td align=center>"; 
 
\t \t echo "<div class=dropdown>"; 
 
\t \t echo "<button class=dropbtn>Dropdown</button>"; 
 
\t \t echo "<div class=dropdown-content onchange='this.form.submit()'>"; 
 
\t \t echo "<a id=myLink href=# onclick='slap();return false;'>Slap</a>"; 
 
\t \t echo "<a id=myLink href=# onclick='kick();return false;'>Kick</a>"; 
 
\t \t echo "<a id=myLink href=# onclick='mute();return false;'>Mute</a>"; 
 
\t \t echo "</div>"; 
 
\t \t echo "</div>"; 
 
\t \t echo "</td>"; 
 
\t \t echo "</tr>";

+0

在函数调用中包含playerid会不会更容易?即onclick ='slap({$ playerid}); return false;' BTW,ID是假设是独一无二的,所以你 JonnyUK

+0

你是什么意思'身份证不起作用'?你也改变了函数调用的功能耳光(playerid){$。员额( “../ Q3/slap.php”,{playerid:playerid},功能(数据){}); \t返回false;} – jeff

回答

0

必须先改变你的HTML代码。不要使用更多的1次相同的ID,并通过与数据XXX属性参数

你可以做这样的事情:

HTML

<div class="action" data-id-player="<?php echo $playerid ?>"> 
    <ol> 
     <li><a href="" data-action="slap">slap</a></li> 
     <li><a href="" data-action="kick">kick</a></li> 
     <li><a href="" data-action="mute">mute</a></li> 
    </ol> 
</div> 

你的jQuery脚本:

$('.action').on('click', 'a',function(){ 
    var playerid = $(this).parent().attr('data-id-player'); 
    var action  = $(this).attr('data-action'); 
    var url =''; 

    switch(action) { 
     case 'slap': 
      url = 'slap.php'; 
     break; 
     case 'kick': 
      url = 'kick.php'; 
     break; 
     case 'mute': 
      url = 'mute.php'; 
     break; 

     default: 
     break; 
    } 
}); 

$.ajax({ 
    url : href, 
    method: "POST", 
    async : false, 
    data: { your_data(the id of player) } 
    success : function(response){ 
      // Do somethings 
    } 
}); 

编辑:您的代码... 必须在2个文件分开JS和PHP。我没有测试过代码,因此请确保将代码正确添加到代码中。

 echo "<td align=center> $team </td>"; 
     echo "<td align=center><a href='user.php?id=".$row["DBID"]."' > $name </a></td>"; 
     echo "<td align=center> $group </td>"; 
     echo "<td align=center> $score </td>"; 
     echo "<td align=center> $ip </td>"; 
     echo "<td align=center>"; 
     echo "<div class=dropdown>"; 
     echo "<button class=dropbtn>Dropdown</button>"; 
     echo "<div class=dropdown-content onchange='this.form.submit()'>"; 
?> 
     <div class="action" data-id-player="<?php echo $row["DBID"] ?>"> 
      <ol> 
       <li><a href="" data-action="slap">slap</a></li> 
       <li><a href="" data-action="kick">kick</a></li> 
       <li><a href="" data-action="mute">mute</a></li> 
      </ol> 
     </div> 
<?php 

     echo "</div>"; 
     echo "</div>"; 
     echo "</td>"; 
     echo "</tr>"; 


jQuery(document).ready(function(){ 

    $('.action').on('click', 'a',function(){ 
     var playerid = $(this).parent().attr('data-id-player'); 
     var action  = $(this).attr('data-action'); 
     var url =''; 

     switch(action) { 
      case 'slap': 
       url = 'slap.php'; 
      break; 
      case 'kick': 
       url = 'kick.php'; 
      break; 
      case 'mute': 
       url = 'mute.php'; 
      break; 

      default: 
      break; 
     } 
     $.ajax({ 
      url : "../q3/"+action, 
      method: "POST", 
      async : false, 
      data: { playerid: playerid) }, 
      success : function(response){ 
        // Do somethings 
      } 
     }); 

    }); 
}); 
+0

我的jQuery的作品,我只是不知道如何链接到发布信息的“巴掌”链接被点击 – JonnyUK

+0

当我修改我的回应。我认为第一步是正确地写你的DOM :) – Xenofexs

+0

对不起。我是JS的noob,我需要编辑哪些代码? :P,非常感谢你的协助 – JonnyUK