Javascript $(“#密码”).show(); }else if(i==0&&quick.password\u quick==0){ $(“#密码”).hide(); } }); $(“#获得测验”).show().html(可选); } });
不要尝试使用您自己的字符串比较函数,因为您需要考虑大小写(大写/小写)、符号和其他有趣的内容。谢谢-您能解释一下我需要在代码中的什么地方添加这个吗。如前所述,我可以在互联网上找到关于如何对独立组合框进行排序的内容,但我的问题是如何整合到我现在拥有的内容中…并查看我的更新(其中包括指向有此问题的站点的链接)为什么不在数据库查询中对它们进行排序?Genius,谢谢!“滚动您自己的字符串比较函数”是什么意思?你在回答时考虑到这一点了吗?:)我的意思是不要使用Javascript $(“#密码”).show(); }else if(i==0&&quick.password\u quick==0){ $(“#密码”).hide(); } }); $(“#获得测验”).show().html(可选); } });,javascript,mysql,database,sorting,combobox,Javascript,Mysql,Database,Sorting,Combobox,不要尝试使用您自己的字符串比较函数,因为您需要考虑大小写(大写/小写)、符号和其他有趣的内容。谢谢-您能解释一下我需要在代码中的什么地方添加这个吗。如前所述,我可以在互联网上找到关于如何对独立组合框进行排序的内容,但我的问题是如何整合到我现在拥有的内容中…并查看我的更新(其中包括指向有此问题的站点的链接)为什么不在数据库查询中对它们进行排序?Genius,谢谢!“滚动您自己的字符串比较函数”是什么意思?你在回答时考虑到这一点了吗?:)我的意思是不要使用result.sort(函数(a,b){返回
result.sort(函数(a,b){返回a.quick\u name>b.quick\u name;})
或类似,因为在比较字符串时比较Unicode字符代码。这并不能提供人类所期望的自然秩序。例如,'bar'<'Baz'===false
因此'Baz'
将出现在'bar'
之前。因此,我没有试图解释所有的边缘情况,而是依靠localeCompare
的标准字符串方法来比较测验名称
属性。这种方法正是针对这样的用例而设计的。我们传递到Array#sort
中的函数就是比较函数。也就是说,result.sort(函数comparisonFunction(a,b){//比较这里的两个对象})代码>。
<body style="font-family: Arial;">
<?php include("nav.php"); ?>
<div id="head" align="center">
<img src="img/typbanner.png" alt="www.teachyourselfpython.com" width=600 height=180 />
</div>
<div id="main_body" align="center">
<h2>Time to try a <big><b>TEST!</b></big></h2>
<form id="myForm" name="onlyForm" action="quiz.php" class="home" method="POST">
<select name="quiz_level" id="quiz_form" class="form-control">
<option disabled selected="true">-- Select The level of your Test --</option>
<option value="Beginner">Beginner</option>
<option value="Intermediate">Intermediate</option>
<option value="Advanced">Advanced</option>
</select>
<select class="form-control" name="quiz" id="got_quiz" style="display:none;"> <!--onchange="showUser(this.value)"-->
<script>
"use strict";
$("#quiz_form").change(function () {
/* WHEN YOU CHANGE AND SELECT FROM THE SELECT FIELD */
var allbooks = $(this).val(); /* GET THE VALUE OF THE SELECTED DATA */
var dataString = "level=" + allbooks; /* STORE THAT TO A DATA STRING */
$.ajax({ /* THEN THE AJAX CALL */
type: "POST", /* TYPE OF METHOD TO USE TO PASS THE DATA */
url: "get-quiz-by-level.php", /* PAGE WHERE WE WILL PASS THE DATA */
dataType: "json",
data: dataString, /* THE DATA WE WILL BE PASSING */
success: function success(result) {
/* GET THE TO BE RETURNED DATA */
var option = "";
result.forEach(function (quiz, i) {
option += "<option value=\"" + quiz.id + "\">" + quiz.quiz_name + "</option>";
if (i == 0 && quiz.password_quiz != 0) {
$("#password").show();
} else if (i == 0 && quiz.password_quiz == 0) {
$("#password").hide();
}
});
$("#got_quiz").show().html(option);
}
});
});
$("#got_quiz").change(function () {
/* WHEN YOU CHANGE AND SELECT FROM THE SELECT FIELD */
var allbooks = $(this).val(); /* GET THE VALUE OF THE SELECTED DATA */
var dataString = "quiz=" + allbooks; /* STORE THAT TO A DATA STRING */
$.ajax({ /* THEN THE AJAX CALL */
type: "POST", /* TYPE OF METHOD TO USE TO PASS THE DATA */
url: "check_quiz_pass.php", /* PAGE WHERE WE WILL PASS THE DATA */
data: dataString, /* THE DATA WE WILL BE PASSING */
success: function success(result) {
/* GET THE TO BE RETURNED DATA */
if (result == 0) {
$("#password").hide();
} else {
$("#password").show();
}
}
});
});
<option value="3">three</option>
<option value="1">one</option>
<option value="0">zero</option>
<option value="2">two</option>
</select>
<script>
// WARN: won't handle OPTGROUPs!
var sel = document.getElementById('foo');
// convert OPTIONs NodeList to an Array
// - keep in mind that we're using the original OPTION objects
var ary = (function(nl) {
var a = [];
for (var i = 0, len = nl.length; i < len; i++)
a.push(nl.item(i));
return a;
})(sel.options);
// sort OPTIONs Array
ary.sort(function(a,b){
// sort by "value"? (numeric comparison)
// NOTE: please remember what ".value" means for OPTION objects
return a.value - b.value;
// or by "label"? (lexicographic comparison) - case sensitive
//return a.text < b.text ? -1 : a.text > b.text ? 1 : 0;
// or by "label"? (lexicographic comparison) - case insensitive
//var aText = a.text.toLowerCase();
//var bText = b.text.toLowerCase();
//return aText < bText ? -1 : aText > bText ? 1 : 0;
});
// remove all OPTIONs from SELECT (don't worry, the original
// OPTION objects are still referenced in "ary") ;-)
for (var i = 0, len = ary.length; i < len; i++)
sel.remove(ary[i].index);
// (re)add re-ordered OPTIONs to SELECT
for (var i = 0, len = ary.length; i < len; i++)
sel.add(ary[i], null);
</script>
result.sort(function (a, b) {
return a.quiz_name.localeCompare(b.quiz_name);
});
$.ajax({ /* THEN THE AJAX CALL */
type: "POST", /* TYPE OF METHOD TO USE TO PASS THE DATA */
url: "get-quiz-by-level.php", /* PAGE WHERE WE WILL PASS THE DATA */
dataType: "json",
data: dataString, /* THE DATA WE WILL BE PASSING */
success: function success(result) {
/* GET THE TO BE RETURNED DATA */
var option = "";
result
.sort(function (a, b) {
return a.quiz_name.localeCompare(b.quiz_name);
})
.forEach(function (quiz, i) {
option += "<option value=\"" + quiz.id + "\">" + quiz.quiz_name + "</option>";
if (i == 0 && quiz.password_quiz != 0) {
$("#password").show();
} else if (i == 0 && quiz.password_quiz == 0) {
$("#password").hide();
}
});
$("#got_quiz").show().html(option);
}
});