关于使用多重选择?

时间:2018-10-16 23:20:03

标签: php html select

嗨,我现在正在处理代码,票务系统会向选择该用户的用户发送通知。 我希望通知选择一个以上的用户和一个以上的用户。 我尝试将此功能用于多个用户的多个选择中,再次说到保存时,一个用户正在此注册,您可以帮我吗?

<div class="form-group select-placeholder"> 
                        <label for="assigned" class="control-label"> 
                            <?php echo _l('ticket_settings_assign_to'); ?> 
                        </label> 
                        <select name="assigned" id="assigned" class="form-control selectpicker" data-live-search="true" data-none-selected-text="<?php echo _l('dropdown_non_selected_tex'); ?>" data-width="100%"> 
                            <option value=""><?php echo _l('ticket_settings_none_assigned'); ?></option> 
                            <?php foreach($staff as $member){ ?> 
                                <option value="<?php echo $member['staffid']; ?>" <?php if($member['staffid'] == get_staff_user_id()){echo '';} ?>> 
                                    <?php echo $member['firstname'] . ' ' . $member['lastname'] ; ?> 
                                </option> 
                            <?php } ?> 
                        </select> 
                    </div>

3 个答案:

答案 0 :(得分:0)

如果要能够选择多个,则必须在框中添加Multiple属性。

<select multiple> 

要以数组形式接收代码中的值,应将namename="assigned"更改为name="assigned[]"

这会将多选数据作为数组发送回PHP或您使用的任何语言

<select multiple name="assigned[]" id="assigned" class="form-control selectpicker" data-live-search="true" data-none-selected-text="<?php echo _l('dropdown_non_selected_tex'); ?>" data-width="100%"> 

答案 1 :(得分:0)

您必须将multiple属性放入您的<select>标记中。


注意:那里的JavaScript用于避免在选择多个选项时按住Ctrl键。

  window.onmousedown = function (e) {
  var el = e.target;
  if (el.tagName.toLowerCase() == 'option' && el.parentNode.hasAttribute('multiple')) {
      e.preventDefault();

      // toggle selection
      if (el.hasAttribute('selected')) el.removeAttribute('selected');
      else el.setAttribute('selected', '');

      // hack to correct buggy behavior
      var select = el.parentNode.cloneNode(true);
      el.parentNode.parentNode.replaceChild(select, el.parentNode);
  }
}
<select name="option-list" size="5" multiple>
            <option value="option-1">Option</option>
            <option value="option-2">Option</option>
            <option value="option-3">Option</option>
            <option value="option-4">Option</option>
            <option value="option-5">Option</option>
            <option value="option-6">Option</option>
            <option value="option-7">Option</option>
            <option value="option-8">Option</option>
            <option value="option-9">Option</option>
        </select>

答案 2 :(得分:0)

我以此方式组织了代码。但是我无法获得成功的结果。

<div class="form-group select-placeholder">
                        <label for="assigned" class="control-label">
                            <?php echo _l('ticket_settings_assign_to'); ?>
                        </label>
                        <select multiple name="assigned[]" id="assigned" class="form-control selectpicker" data-live-search="true" data-none-selected-text="<?php echo _l('dropdown_non_selected_tex'); ?>" data-width="100%"> 
                            <option value=""><?php echo _l('ticket_settings_none_assigned'); ?></option>
                            <?php foreach($staff as $member){ ?>
                                <option value="<?php echo $member['staffid']; ?>" <?php if($member['staffid'] == get_staff_user_id()){echo '';} ?>>
                                    <?php echo $member['firstname'] . ' ' . $member['lastname'] ; ?>
                                </option>
                            <?php } ?>
                        </select>
                    </div>