我有一个使用 jQuery 和 AJAX 与 PHP 文件交互的 HTML 页面,我想改进和实现一些东西。
我<select>
使用 previus -box 返回的响应加载 -boxes <select>
。所以我做了一个简单的函数来保存一些代码。这里是:
$(document).ready(function(){
$("#sex").click(function(){
getPHPdata("sex", "age");
});
$("#age").click(function(){
getPHPdata("age", "work");
});
$("#work").click(function(){
getPHPdata("work", "country");
});
$("#country").click(function(){
getPHPdata("country", "city");
});
function getPHPdata(oASelect, oFSelect) {
$("#" + oFSelect).empty();
$.ajax({
type: 'POST',
url: 'loadselect.php',
data: 'id=' + encodeURIComponent(oASelect) + "&p=" + encodeURIComponent($("#" + oASelect).val()),
dataType: 'json',
success: function(data){
for (var i = 0; i < data.length; i++) {
$("#" + oFSelect).append("<option>" + data[i] + "</option>");
}
}
});
};
});
好吧,在这段代码中,我只有四个<select>
-box,但我至少需要使用八个(都使用与上面代码相同的父级)。有什么办法可以优化或节省更多代码?
我的第二个问题是:
当 PHP 文件返回的数组长度只有一个元素时,它会调用其 click 事件的函数并加载下一个<select>
-box,因为用户只能选择该选项。
我不知道什么是更好的方法,因为如果我在php文件中控制它,那么我不知道如何发送响应并在html文件中处理它。
我希望我的解释很清楚。任何帮助、建议或示例将不胜感激。如果您需要更多详细信息,请告诉我,我将编辑帖子。