我有一个名为 Category 的下拉列表,这些选项由一个 PHP 脚本填充,该脚本在 MySQL 表中查询类别名称。
在它旁边,我有一个名为 Subcategory 的下拉列表,这些选项也由一个 PHP 脚本填充,该脚本在 MySQL 表中查询子类别名称。
我想根据从“类别”下拉列表中选择的类别重新运行子类别查询以更改“子类别”下拉列表的值。
而且我不希望页面刷新,所以我认为 jquery 可能在这里有用吗?
一般来说,您不应该使用 jQuery(或任何其他框架),除非您已经在页面上下载它。当您的浏览器正在下载脚本和库(其中,jQuery 可能是最大的)时,您的页面的其余部分无法执行。我不知道为什么,但它不会下载图像,加载 iframe,什么都没有。
你可以做一个AJAX请求来下载新内容。请小心,因为这意味着您实际上是在编写一个可以访问数据库的 Web 服务,因此请确保验证服务器和 javascript 中的输入,并为删除/删除操作开发某种安全性。
这是 Ajax 的原生 javascript 教程,但如果您对 AJAX 非常感兴趣,可以使用它。
基本目标是这样的:
在让 jQuery 为您完成这一切之前,我恳请您确保您了解本机代码中的 AJAX。即使你最终选择使用 jQuery 框架,它也会在调试、升级和重用这段代码时为你提供帮助。
像这样的东西?
$(document).ready(function(){
var select = $("#select-element");
select.change(function(){
$.ajax({
type : 'POST',
url: "url-of-your-php-script",
data: {
'data-name' : 'data-to-send'
}
success : function(returned){
// Append variable results to select..
}
});
});
});
子类别下拉列表应在更改事件上监听父类别。在 Jquery 中,您可以使用。
$('#parent').change(function(){
var parent = $(this).val();
// Remove current subcategory options
$('#child').children().remove();
// AJAX POST
$.ajax({
type:'POST',
data: 'parent='+parent,
url: 'process.php',
success: function(data){
// Fill the subcategory with new options using jquery each method
}
});
});