我有下拉列表,这是一个数组。当单击按钮"Add“时,我使用JavaScript克隆这个下拉列表。因此,它出现了许多次,并插入正确。但是,当我试图设置这个下拉列表的选定值时,当我按下submit值时,这个下拉列表的所有形式的提交值都是相同的。我认为这是因为我使用set_select('labeling[]')作为数组,如下所示:
<option value=''" . set_select('labeling[]', '') . " role='menuitem'> </option>
但当我试图像那样使用它时:
<option value=''" . set_select('labeling', '') . " role='menuitem'> </option>
它没有设置选定的任何东西。我的看法是:
<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>
我怎么能做到这一点--为每个下拉列表选择值?:)谢谢!
我编辑了我的问题。我的全部代码是:
$(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);
});
});
<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>
发布于 2015-06-07 04:40:18
首先,让我们假设您的页面名为"A.php“。在此页面中创建一个隐藏字段。例:
<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调用:
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中,它将只包含:-
$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;
+++++++
希望它有帮助:比如:
发布于 2015-06-05 12:56:10
如果我正确理解你的问题,试试这个:
这是一个例子,试着像ci那样做:-
$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>
有什么不对的地方让我知道吗?
发布于 2015-06-05 12:41:48
您需要自己设置数组索引;例如:
labeling[0]
labeling[1]
labeling[2]
如果没有这些索引,每个选项都将覆盖前一个选项。
https://stackoverflow.com/questions/30666771
复制相似问题