使用以下代码,我可以创建无限数量的行,其中包含下拉选择和文本输入字段。问题是我想用我的数据库中的数据填充下拉选项但我不知道如何在我创建javascript标记内的下拉选项时这样做。我尝试使用codeigniter的默认drop_down选择而不是通常的“下拉选择”类型但是当我单击添加按钮创建一个新行时,它什么都不做。
请帮助我解决问题吗?仅供参考,我使用的是Codeigniter。
提前致谢:)
这是我的javascript ::
<script type="text/javascript">
$(function() {
$("input[type=button][value=Add]").click(function(e) {
e.preventDefault();
var newDiv = $("<div>").appendTo("#div");
$("<select>").attr("name", "fee_type[]").attr("class", "required").appendTo(newDiv).append(
$("<option>").val("0").text("Option 1"),
$("<option>").val("1").text("Option 2"));
$("<input>").attr("name", "fee_amount[]").attr('class', 'small required').appendTo(newDiv);
$("<button>").text("Remove").appendTo(newDiv).click(function (e) {
e.preventDefault();
newDiv.remove();
});
});
});
</script>
我使用以下代码来获取我想要在下拉列表中填充的信息:
function fee_types() {
$this->db->select('fee_type,id');
$records=$this->db->get('fee_types');
$data=array();
$data[''] = 'Select';
foreach ($records->result() as $row)
{
$data[$row->id] = $row->fee_type;
}
return ($data);
}
这是我的控制器:
$this->load->model('dropdown_fee_types');
$data['records']= $this->dropdown_fee_types->fee_types();
$data['main_content']='view_studentfee';
$this->load->view('includes/template',$data);
答案 0 :(得分:0)
<script type="text/javascript"> $(function() {
$("input[type=button][value=Add]").click(function(e) {
e.preventDefault();
var newDiv = $("<div>").appendTo("#div");
$("<select>").attr("name", "fee_type[]").attr("class", "required").appendTo(newDiv).append(
<?
foreach($data['records'] as $key=>$value){
print '$("<option>").val("'.$key.'").text("'.$value.'"),';
}
?>
$("<input>").attr("name", "fee_amount[]").attr('class', 'small required').appendTo(newDiv);
$("<button>").text("Remove").appendTo(newDiv).click(function (e) {
e.preventDefault();
newDiv.remove();
});
});
});
永远不要使用codeigniter,因此不确定数据的确切位置......但基本知识也在documentation
中说明