我正在使用ajax函数来填充组合框。我有这样的ajax代码。
$(document).ready(function() {
alert();
$.ajax({
url:'Stations.php',
type:'POST',
// data: 'q=' + str,
dataType: 'json',
success: function( json ) {
$.each(json, function(i, value) {
.append($('<option></option>', {text:value})
.attr('value', text));
});
}
});
});
我的php代码是这样的。
function getStationList()
{
$db = new DBManager();
$mysqli = $db->db_connect();
$query = "SELECT name FROM car";
$stmt = $mysqli->prepare($query);
$stmt->execute();
$result = $stmt->get_result();
$list = array();
while($row = $result->fetch_assoc())
{
$list[] = $row['name'];
}
return json_encode($list);
}
当我编译我的PHP代码时,我得到了一个outpu;
[ “CAR1”, “CAR2”, “的Car3”]
我想把这个car1,car2,car3发送到我的盒子我的html代码是
<div class="content" data-role="content" id="content" >
<div id="car">
<select name="selectSt" class="span12" id="selectSt" >
<option></option>
<option></option>
<option></option>
</select>
</div>
<div id="cinfo"></div>
<button onclick="javascript:callCarInfo.call(this,document.getElementById('selectSt').value);">Call Podcar</button>
</div>
<div class="footer" data-role="footer"><h1>IYTE PRT©</h1></div>
</div>
我无法填写此选项&gt; / option&gt;与car1 car2和car3值..
答案 0 :(得分:2)
如果你的php脚本(Sations.php)返回像[“car1”,“car2”,“car3”]这样的数据
更新:文本未在循环中定义,应为值:http://jsfiddle.net/6PEbe/1/
$.ajax({
url:'Stations.php',
type:'POST',
dataType: 'json',
success: function( json ) {
$.each(json, function(i, value) {
$('<option></option>', {text:value}).attr('value', value).appendTo('#selectSt');
});
}
});
答案 1 :(得分:1)
首先,如果我在你的位置,我不会在append
中使用each
来解决性能问题
请修改attribute_name
我会做以下
$.ajax({
url:'Stations.php',
type:'POST',
dataType: 'json',
success: function( json ) {
var HTML = "";
$.each(json, function(i, value) {
console.log("my val is"+value+" my key is"+i);
HTML = HTML+"<option>"+value+"</option>";
});
$('#selectSt').append(HTML);
}
});
这是从绩效角度出发的最佳做法
我希望这可以帮助:)
答案 2 :(得分:0)
使用children()
回调函数中的each
附加<option>
代码:
$("#selectSt").children().append(valueYouWantToAdd);