在for循环中的PHP页面上使用Jquery/Ajax
我最近了解到,当使用onclick时,对于按钮,字段名和按钮id必须是唯一的。虽然这不是问题,但根据脚本输出的行数,这可能会造成很大的浪费 例如,我有一个while循环,它对我服务器(minecraft)上的每个人都这样做,所以它可以是10,也可以是50 这是创建js对象的代码在for循环中的PHP页面上使用Jquery/Ajax,php,jquery,ajax,Php,Jquery,Ajax,我最近了解到,当使用onclick时,对于按钮,字段名和按钮id必须是唯一的。虽然这不是问题,但根据脚本输出的行数,这可能会造成很大的浪费 例如,我有一个while循环,它对我服务器(minecraft)上的每个人都这样做,所以它可以是10,也可以是50 这是创建js对象的代码 $kickbtn .= " $('#kick_btn$k').click(function(event) { var player_name$k = jQuery('input[name=\"play
$kickbtn .= " $('#kick_btn$k').click(function(event) {
var player_name$k = jQuery('input[name=\"player$k\"]').val()
jQuery.get('testing.php?action=kick', { player_input: player_name$k} );
alert('Successfully kicked');
});\n\n";
这是表单数据
<form name=\"$pdata[name]\" action=\"\">
<input type=\"hidden\" name=\"player$k\" value=\"$pdata[name]\">
<input type=\"submit\" id=\"kick_btn$k\" value=\"Kick Player\">
</form>
$k++;
只需要一个委托事件处理程序,这意味着将其附加到父/容器元素,除非您希望文档中有50多个单击处理程序,这将不必要地降低速度:
// bind to all elements starting with 'kick_btn' within #container
// (could even be 'body')
$("#container").delegate('[id^="kick_btn"]', "click", function(event) {
// get the current player number from the id of the clicked button
var num = this.id.replace("kick_btn", "");
var player_name = jQuery('input[name="player' + num + '"]').val();
jQuery.get('testing.php?action=kick', {
player_input: player_name + num
});
alert('Successfully kicked');
});
参考:
// bind to all elements starting with 'kick_btn' within #container
// (could even be 'body')
$("#container").delegate('[id^="kick_btn"]', "click", function(event) {
// get the current player number from the id of the clicked button
var num = this.id.replace("kick_btn", "");
var player_name = jQuery('input[name="player' + num + '"]').val();
jQuery.get('testing.php?action=kick', {
player_input: player_name + num
});
alert('Successfully kicked');
});