2017-05-27 76 views
0

我很困惑如何填充我的下拉列表,添加按钮点击数据库值。我使用jQuery做按钮点击下拉的添加功能。但它似乎不能填充我的jQuery中的选择标记与数据库值的选项。请帮我...下拉式填充数据库数据,添加按钮点击

这是我的PHP页面

 <?php include("connect.php"); 
     $smt = $conn->prepare('select CompanyName From Company'); 
     $smt->execute(); 
     $data = $smt->fetchAll(); 
     ?> 

     <div class="form-group" id='TextBoxesGroup'> 
      <label for="layer" class="col-sm-3 control-label">Layer</label> 
      <div id="TextBoxDiv1" class="col-sm-6"> 
       <select class="form-control" id='textbox1' name="company" placeholder="Company" > 

       <?php foreach ($data as $row): ?> 
        <option><?=$row["CompanyName"]?></option> 
       <?php endforeach ?> 

       </select> 
      </div><hr/> 

      </div> 

      <div class="form-group" > 
      <div class="col-md-9 text-right">     
       <input type='button' class="btn btn-default" value='Add +' id='addButton'> 
      </div> 
      </div> 

用于按钮点击添加下拉jQuery的代码是:

编辑:

$(document).ready(function(){ 

    var counter = 2; 

    $("#addButton").click(function() { 

    if(counter>5){ 
     alert("Only 5 Layers allowed"); 
     return false; 
    } 
    var companies = [<?php echo "'".join("','",$data)."'";?>]; 
    var newTextBoxDiv = $(document.createElement('div')) 
    .attr("id", 'TextBoxDiv' + counter); 

    newTextBoxDiv.after().html('<div class="form-group" id="TextBoxesGroup"><label class="col-sm-3 control-label">Layer '+ counter + ' : </label>' +' <div id="TextBoxDiv1" class="col-sm-6"><select class="form-control" name="textbox' + counter + '" id="textbox' + counter + '" name="company" placeholder="Company">'); 

$.each(companies, function(key, value){ 
    newTextBoxDiv.append('<option>'+value+'</option>'); 
}); 

newTextBoxDiv.append('</select> </div></div>'); 
newTextBoxDiv.appendTo("#TextBoxesGroup"); 
counter++; 
    }); 

}); 

</script> 

但输出显示如下:enter image description here 谢谢

回答

1

那么,你需要echo$row['companyName']值(你的foreach循环里面的一个)

另一个实现是......说你有值在PHP的数组。

$data = array("company A", "company B", "company C");

和JavaScript ...

<script> 
var companies = [ <?php echo "'". join("','", $data) . "'";?> ]; 
//This generates : ['company A', 'company B', 'company c']; 

function insertOptions() 
{ 
    $.each(companies, function(key, value){ 
     $("#IDofSelectTag").append("<option>"+value+"</option>"); 
    }); 
} 
</script> 
+0

'<?='是其中做的'echo'工作短的PHP标记,所以并不真的需要使用'echo' 。 –

+0

我是一种新的Jquery ..你可以附加我的代码? –

+0

选项未正确附加。请检出编辑。 –