我有来自mysql的数据,需要在下拉列表中显示。代码如下。
此数据值将来自mysql。所以我需要在下拉列表中显示所有这些值。寻找解决方案。
var data = "user data1, user data2, user data3, user data4/ user data6, user data7, user data8/ user data5, user data9";
function studentPopulate(){
$.each(newTotalData, function(key, value) {
$('#sList')
.append($("<option></option>")
.attr("value",key)
.text(value));
});
}
var totalData = [];
var data_array = [];
var arrayVal = [];
var newTotalData = new Array();
function studentInfo(){
$.getJSON("checkData.php", {section_id:section_id, uID: uID}, function(data) {
$.each(data, function(i, user) {
var data = user.groupContent;
data_array = data.split('/').join(',');
totalData.push(data_array);
arrayVal = totalData;
newTotalData = arrayVal[0].split(',');
studentPopulate();
});
});
}
PHP代码在这里:
<?php
include 'connection.php';
$uID = $_GET["uID"];
$cid = $_GET["section_id"];
mysqli_select_db($con, "DB");
$Query="SELECT * from table WHERE uid='".$uID."' and section_id='".$cid."'";
$result = mysqli_query($con, $Query);
$totalRecords = mysqli_num_rows($result);
//echo $totalRecords;
if($totalRecords) {
while ($row = mysqli_fetch_array($result)) {
$returnData[]=array( //for Json data array
'userName' => $row['fullName'],
'groupContent' => $row['groupContent']
);
}
}
mysqli_close($con);
echo json_encode($returnData);
?>
下拉值的变化。 我需要找出inarray中的下拉文本。刚刚更新了我的代码。好像它找不到数组中的值。请帮忙。 它可以找到newTotalData,但我需要找出该下拉值的组(数组)。
$('#sList').change(function()
{
var str = $(this).find(":selected").text();
if($.inArray(str,data_array[0])>=0){alert(data_array[0])};
});
}
答案 0 :(得分:1)
你需要这样做 -
var totalData = [];
function test(){
var data = "user data1, user data2, user data3, user data4/ user data6, user data7, user data8/ user data5, user data9";
data_array = data.split('/').join(',');
totalData.push(data_array);
arrayVal = totalData;
newTotalData = arrayVal[0].split(',');
studentPopulate();
}
function studentPopulate(){
$.each(newTotalData, function(key, value) {
$('#sList')
.append($("<option></option>")
.attr("value",key)
.text(value));
});
}
test();
演示---->
http://jsfiddle.net/ht3Y7/1/
答案 1 :(得分:0)
从您的示例中不清楚用户数据的哪个部分包含列表框值,哪个部分包含列表框文本。为了说明我的想法,我为您创建了这个fiddle:
HTML:
<select id='sList'></select>
使用Javascript:
function test() {
var data = "100, Bob Smith/200, John Wayne";
studentPopulate(data.split('/'));
}
function studentPopulate(data) {
$.map(data, function (student) {
var studentRecord = student.split(',');
var id = studentRecord[0].trim();
var name = studentRecord[1].trim();
$('#sList')
.append($("<option></option>")
.val(id)
.html(name));
});
}
test();
在这个例子中,我假设列表框值是列表中的第一个元素,文本是第二个元素。
答案 2 :(得分:0)
您应该使用正则表达式将数据字符串拆分为数组。
var data =“user data1,user data2,user data3,user data4 / user data6,user data7,user data8 / user data5,user data9”;
newTotalData = data.split(/[,\/]/); //split string to array.
newTotalData是数组。
如果需要对象,则需要将此数组传输到对象。