我正在尝试动态填充带有ajax请求的表单中的select字段到我的基于php的应用程序。下面的代码显示了view / form javascript代码中的ajax请求
$(document).ready(function (){
var clientDropDown = {
load: function()
{
$.ajax({
'type': "post",
'url': "http://localhost/promptMe/index.php/main/fetchNames",
'data': "client",
'delay': 5000,
'success': function(result)
{
clientDropDown.attach(result);
},
'error': function()
{
alert("There's a problem!");
}
});
},
attach: function(result)
{
result = $.parseJSON(result);
$.each(result,function(id,obj){
var client = document.createElement('option');
client.setAttribute('value',obj.name);
client.text = obj.name;
$('select#client_name')[0].add(client);
});
}
};
clientDropDown.load();
});
在我的控制器中处理此请求的功能如下所示
function fetchNames()
{
$entity_type = $this->input->post('data');
$names = $this->model1->getEntityNames($entity_type);
print json_encode($names);
}
在Chrome浏览器开发者工具中,我看到成功的响应,json对象位于渲染视图的顶部,并且没有任何“名称”附加到我的html中的select元素,其中包含下面的代码段
<form method="post" action="receiveEntry" class="form">
<fieldset>
<legend class="content-header">
Job Details
</legend>
<div class="form-content">
<div class="form">
<label for="date">Date</label>
<input type="date" placeholder="Job Date" id="date" name="date" title="Date Job was prepared" />
</div>
<div class="form">
<label for="client_name">Client Name</label>
<select name="client_name" id="client_name">
</select>
</div>
<div class="form">
<label for="description">Description</label>
<textarea id="description" name="description" title="Description of Estimated Job" cols="40" rows="5" title="Description of job">Job Description</textarea>
</div>....lots of other unnecessary form fields</fieldset></form>
我正在使用jQuery1.7.2。
请告诉我为什么我不能用返回的json对象的元素填充我的选择字段