首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何设置数组的选定值??我已多次使用此表单。

如何设置数组的选定值??我已多次使用此表单。
EN

Stack Overflow用户
提问于 2015-06-05 12:37:36
回答 5查看 1.5K关注 0票数 1

我有下拉列表,这是一个数组。当单击按钮"Add“时,我使用JavaScript克隆这个下拉列表。因此,它出现了许多次,并插入正确。但是,当我试图设置这个下拉列表的选定值时,当我按下submit值时,这个下拉列表的所有形式的提交值都是相同的。我认为这是因为我使用set_select('labeling[]')作为数组,如下所示:

代码语言:javascript
运行
复制
<option value=''" . set_select('labeling[]', '') . " role='menuitem'> </option>

但当我试图像那样使用它时:

代码语言:javascript
运行
复制
<option value=''" . set_select('labeling', '') . " role='menuitem'> </option>

它没有设置选定的任何东西。我的看法是:

代码语言:javascript
运行
复制
 <select name="labeling[]" id="labeling" class="dropdown">
                                    <option value=''" . set_select('labeling[]', '') . " role='menuitem'> </option>
                                        <option value="1" <?php echo set_select('labeling[]', '1'); ?> role="menuitem">1</option>
                                        <option value="2" <?php echo set_select('labeling[]', '2'); ?> role="menuitem">2</option>
                                        <option value="3" <?php echo set_select('labeling[]', '3'); ?> role="menuitem">3</option>
                                        <option value="4" <?php echo set_select('labeling[]', '4'); ?> role="menuitem">4</option>
                                    </select>

我怎么能做到这一点--为每个下拉列表选择值?:)谢谢!

我编辑了我的问题。我的全部代码是:

代码语言:javascript
运行
复制
$(document).ready(function () {
   $('.multi-field-wrapper').each(function () {
                var $wrapper = $('.multi-fields', this);
                $(".add-field", $(this)).click(function (e) {
                    var $template = $('.multi-field:first-child', $wrapper).clone(true);

                   
                    $template.find('input', 'select').val('').focus();
                    $template.appendTo($wrapper);
                });
     });
代码语言:javascript
运行
复制
<div class="container multi-field-wrapper">
                <div class="multi-fields">
                    <div class="multi-field">
                        <div class="row">
                            <div class="col-md-4 col-md-offset-1 col-sm-3">
                                <div class="form-group">
                                   <select name="labeling[]" id="labeling" class="dropdown">
                                    <option value=''" . set_select('labeling[]', '') . " role='menuitem'> </option>
                                        <option value="firm1" <?php echo set_select('labeling[]', 'firm1'); ?> role="menuitem">firm1</option>
                                        <option value="firm2" <?php echo set_select('labeling[]', 'firm2'); ?> role="menuitem">firm2</option>
                                        <option value="firm3" <?php echo set_select('labeling[]', 'firm3'); ?> role="menuitem">firm3</option>
                                        <option value="firm4" <?php echo set_select('labeling[]', 'firm4'); ?> role="menuitem">firm4</option>
                                    </select>
                  </div>
                            </div>
</div>
                            </div>
</div>
                            </div>

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2015-06-07 04:40:18

首先,让我们假设您的页面名为"A.php“。在此页面中创建一个隐藏字段。例:

代码语言:javascript
运行
复制
<input type="hidden" id="unique_index" value="0" />
<select name="labeling[]">
  <option value="1" <?php echo set_select('labeling[]', '1', TRUE, 0); ?> role="menuitem">1</option>
  <option value="2" <?php echo set_select('labeling[]', '2', FALSE, 0); ?> role="menuitem">2</option>
  <option value="3" <?php echo set_select('labeling[]', '3', FALSE, 0); ?> role="menuitem">3</option>
</select> 

现在,在javascript中(之前您正在克隆元素,即在单击按钮时调用的函数),编写如下get调用:

代码语言:javascript
运行
复制
var newIndex = $('#unique_index').val();
var cnt = parseInt(newIndex)+1;
$.get( "new_ajax_page_url.php", { counter: cnt} )
  .done(function( data ) {
       data.find('input', 'select').val('').focus();
       data.appendTo($wrapper);
  });

现在在new_ajax_page_url.php中,它将只包含:-

代码语言:javascript
运行
复制
$newCounter = $_GET['counter'];

$str = <<<EOD
<select name="labeling[]">
  <option value="1" set_select('labeling[]', '1', TRUE, $newCounter) role="menuitem">1</option>
  <option value="2" set_select('labeling[]', '2', FALSE, $newCounter) role="menuitem">2</option>
  <option value="3" set_select('labeling[]', '3', FALSE, $newCounter); role="menuitem">3</option>
</select>
EOD;

echo $str;

+++++++

希望它有帮助:比如:

票数 2
EN

Stack Overflow用户

发布于 2015-06-05 12:56:10

如果我正确理解你的问题,试试这个:

这是一个例子,试着像ci那样做:-

代码语言:javascript
运行
复制
$options = array(
                  'small'  => 'Small Shirt',
                  'med'    => 'Medium Shirt',
                  'large'   => 'Large Shirt',
                  'xlarge' => 'Extra Large Shirt',
                );

echo form_dropdown('shirts', $options, 'large');

// Would produce:

<select name="shirts">
<option value="small">Small Shirt</option>
<option value="med">Medium Shirt</option>
<option value="large" selected="selected">Large Shirt</option>
<option value="xlarge">Extra Large Shirt</option>
</select>

有什么不对的地方让我知道吗?

票数 1
EN

Stack Overflow用户

发布于 2015-06-05 12:41:48

您需要自己设置数组索引;例如:

代码语言:javascript
运行
复制
labeling[0]
labeling[1]
labeling[2]

如果没有这些索引,每个选项都将覆盖前一个选项。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30666771

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档