2

我已经尝试了一段时间,但我似乎无法为多选添加更多选项。

即使我尝试添加一条硬编码的信息,它也不会被添加。(Multiselect 和 JQuery 的标题在不同的文件中)。

您可以在此处查看链接:http: //www.fakegaming.eu/GoT/index.php?act=selectteam &matchid=3

<?php
$matches = new Matches();
$user = new User();
$id = $_GET['matchid'];
$matchinfo = $matches->getmatch($id);
$matchplayers = $matches->getmatchplayers($id);
?>
<script type="text/javascript">
    $(function(){
        $.localise('ui-multiselect', {/*language: 'en',*/ path: 'script/locale/'});
        $(".multiselect").multiselect();

        $("#add").click(function() {
          $('#players').multiselect('addOptions', 'Test=123');
          alert("Handler for .click() called.");
        });
    });
</script>
Kies hier 10 spelers die mee doen aan de match.<br /> <br />

<form action='index.php?act=createteam' method='post'>
    <select id="players" class="multiselect" multiple="multiple" name="players[]">
    <?php
        foreach($matchplayers as $matchplayer){
            $userinfo = $user->getuserbyid($matchplayer['user_id']);
            if($matchplayer['type'] == 0 OR $matchplayer['type'] == 2){
                $name = $userinfo['EU_username'];
                ?>
                <option value="<?= $name ?>"><?= $name ?></option>
                <?php
            }
        }

    ?>
    </select>
    <input name='name' type='text' id='name' />
    <input type='button' id="add" name="add" value="Toevoegen" />
    <input name="submit" value="Maak team" type="submit" />
</form>

我可能只是在做一些非常错误的事情,但我只是想要一个好的多选并为其添加一些名称。

4

2 回答 2

4

你说正在使用 jQuery,但我看到它的使用很少......这将是一个“jQuery 方式”添加<OPTION>到你的多选

$('#players').append($('<option></option>').attr('value', '123').text('345'));

要选择一个属性:

$('#players option[value="123"]').attr('selected', true);

取消选择一个属性:

$('#players option[value="123"]').removeAttr('selected');

删除一个选项

$('#players option[value="123"]').remove();

**编辑**

(我没有看你的参考链接。我应该是最好的回答者,我是这个小部件的原作者之一!)

这个小部件的下一个版本是 Michael Aufreiter 和我开发的,它实现了您需要的更多功能。它在某些配置下有点不稳定,但在基本(默认)设置下应该足够稳定。

你可以在这里找到它,你可以通过选项访问值:

 $('#players').multiselect('addOptions', '123=456'); // value=123, text=456

抱歉,API 文档未更新以记录此内容。这个小部件实际上得到了其他贡献者的支持,我们中的任何一个,原作者,都维护这个版本。

希望这可以帮助。

于 2012-05-18T13:58:39.690 回答
0

如果您想将玩家提交给您的index.php?act=createteam操作,请确保您在发送请求之前选择了玩家。

<script>
    function selectPlayers() {
        var opts = document.getElementById("players").options;
        for (var i = 0; i < opts.length; i++) {
            opts[i].selected = "selected";
        }
        return true;
    }
</script>

<form action='index.php?act=createteam' method='post' onsubmit='selectPlayers()'>
于 2012-05-18T13:39:15.813 回答