2011-04-25 55 views
0

如何添加具有相同选项和不同名称的选择框。 我有一个循环,在那里我的PHP读取SQL表,并为每一行,它会创建一个选项标签附加一个选择框,但选项框相同但名称不同

这是功能追加:

$(function(){ 
    $('#add').click(function(){ 
     var select = $('span[id=combo]').html(); 
     $('#allCombo').append('<br/><span id="combo">'+select+'</span>'); 
    }); 
}); 

这是选择框:

<span id="allCombo"> 
       <span id="combo" name="combo"> 
        <select name="item"> 
         <?php foreach ($items as $item) { ?> 
          <option value="<?php echo $item->item_id; ?>"> 
          <?php echo $item->item_name; ?></option> 
         <?php } ?> 
        </select> 
       </span> 
</span> 

任何人都可以帮助我。 以前感谢。

回答

0

使用item[]姓名。 PHP会将其转换为一个数组,因此所选值存储在$_POST['item']的数组中。

但更重要的是不重复ID。我建议彻底清除内span,作为

  1. 你不能有重复的ID和
  2. span标签没有name属性

所以没有必要保留此标记。

<span id="allCombo"> 
    <select name="item[]"> 
     <?php foreach ($items as $item): ?> 
      <option value="<?php echo $item->item_id; ?>"> 
       <?php echo $item->item_name; ?> 
      </option> 
     <?php endforeach; ?> 
    </select> 
</span> 

的JS代码如下:

$(function(){ 
    $('#add').click(function(){ 
     $('#allCombo') 
      .append('<br />') 
      .append($('#allCombo select').first().clone()); 
    }); 
}); 
+0

由于其乐于助人的 – 2011-04-25 14:15:04

+0

我有另一个问题 你能帮我吗 http://stackoverflow.com/questions/5789219/showing-a-combo-box-by-change-value-of-another-combo-box – 2011-04-26 11:23:02

1
$(function(){ 
    $('#add').click(function(){ 
     var select = $('#combo').html(); 
     $('<br/><span id="combo">'+select+'</span>').appendTo('#allCombo').find.('select').attr('name', 'uniqueName'); 
    }); 
}); 
+0

+1,不要忘了' mattsven 2011-04-25 13:36:59

+1

ID重复调用的麻烦... – 2011-04-25 13:41:58

0
var newSelect = $('select[name=item]').clone().attr('name', 'newselect'); 
$('#allCombo').append(newSelect); 
0

您可以随时使用克隆方法:

var new_combo $('span#combo').clone(); 
new_combo.attr('name', 'second_combo'); 
new_combo.attr('id', 'second_combo'); // for valid html 
$('#allCombo').append(new_combo); 
相关问题