【问题标题】:Dynamically adding fields based on what is selected in the DropdownField with SilverStripe使用 SilverStripe 根据在 DropdownField 中选择的内容动态添加字段
【发布时间】:2015-07-15 09:08:57
【问题描述】:

我正在创建一个表单(使用多表单),我需要能够根据在包含团队的下拉字段中选择的内容生成复选框。如果选择了一支球队并且该球队参加了第 1 赛区和第 2 赛区,我想显示第 1 赛区和第 2 赛区复选框,以便用户可以选择他们为该队效力的赛区。

这可能吗?

【问题讨论】:

    标签: php silverstripe


    【解决方案1】:

    是的,这是可能的,这是一个很棒的模块,可以为相关下拉字段执行此操作,但我相信您可以调整复选框,祝您好运!

    https://github.com/sheadawson/silverstripe-dependentdropdownfield

    【讨论】:

    • 这个模块需要我手动输入每种可能性。我可以通过 jQuery 做到这一点。我避免这种情况的原因是因为团队会一直被添加,我不能每次都更新代码。
    • 嗯,你需要一些 php 来为你生成表单;)也许github.com/unclecheese/silverstripe-display-logic 可以帮助你?但它仍然是相当静态的,您需要生成表单,displaylogic 为您显示和隐藏其他字段。根据您的数据,这可能有效。
    【解决方案2】:

    这是 HTML 代码:

    <select id = "selectMe">
      <option selected = "selected" value = "" >Select Here</option>
      <option value = "sample1">Sample 1</option>
      <option value = "sample2">Sample 2</option>
      <option value = "sample3">Sample 3</option>
    </select>
    
    <div class="appendHere"></div>
    

    jquery:

    $("#selectMe").change(function(){
        $('.appendHere').append('<input type="radio" name="'+$(this).val()+'" value="'+$(this).val()+'"/>'+$(this).val()+'');
    });
    

    这会给你一个想法.. =)cheerio!!

    【讨论】:

    • 我知道如何通过 jQuery 附加字段,但问题是根据所选选项的不同附加字段。还有一个问题是 SS 实际上没有识别该字段并将其存储在 $data 变量中。
    • 您好@JackO'Connor 我已经更新了我的答案。如果我正确理解您的问题,您希望附加单选按钮具有所选下拉列表的值吗?
    • 不,例如,下拉列表将是“Team1”,并且团队 1 可能是第 2 和第 5 分区的一部分,如果是这样,我想要第 2 和第 5 分区的复选框,仅此而已。因此,当玩家注册时,他们会点击第 1 队,他们可能只为第 2 区效力,因此他们会点击第 2 区,但其他一些人可能会为第 5 区效力,甚至两者兼而有之。
    • 我明白了...那么,您将如何确定您选择的球队 1 是否只需要参加 2 级和 5 级比赛?
    • 我明白了,所以你可以使用 jquery ajax 来实现这一点.. 选择团队之后.. 你将创建一个查询 where team = 'teamYouSelected'.. 然后获取该团队可能的部门播放.. 然后通过 json 和 .each 获取结果...并附加单选按钮... =)
    猜你喜欢
    • 1970-01-01
    • 2017-12-06
    • 2020-01-05
    • 1970-01-01
    • 1970-01-01
    • 2021-11-23
    • 1970-01-01
    • 1970-01-01
    • 2012-08-30
    相关资源
    最近更新 更多