0

我有一个名为 Category 的下拉列表,这些选项由一个 PHP 脚本填充,该脚本在 MySQL 表中查询类别名称。

在它旁边,我有一个名为 Subcategory 的下拉列表,这些选项也由一个 PHP 脚本填充,该脚本在 MySQL 表中查询子类别名称。

我想根据从“类别”下拉列表中选择的类别重新运行子类别查询以更改“子类别”下拉列表的值。

而且我不希望页面刷新,所以我认为 jquery 可能在这里有用吗?

4

3 回答 3

1

一般来说,您不应该使用 jQuery(或任何其他框架),除非您已经在页面上下载它。当您的浏览器正在下载脚本和库(其中,jQuery 可能是最大的)时,您的页面的其余部分无法执行。我不知道为什么,但它不会下载图像,加载 iframe,什么都没有。

你可以做一个AJAX请求来下载新内容。请小心,因为这意味着您实际上是在编写一个可以访问数据库的 Web 服务,因此请确保验证服务器和 javascript 中的输入,并为删除/删除操作开发某种安全性。

这是 Ajax 的原生 javascript 教程,但如果您对 AJAX 非常感兴趣,可以使用它

基本目标是这样的:

  1. 编写一个网页,将查询的新参数作为参数,然后
  2. 用 AJAX 调用它,然后
  3. 使用返回的信息重新填充您的下拉菜单。

在让 jQuery 为您完成这一切之前,我恳请您确保您了解本机代码中的 AJAX。即使你最终选择使用 jQuery 框架,它也会在调试、升级和重用这段代码时为你提供帮助。

于 2012-10-19T19:31:52.527 回答
1

像这样的东西?

$(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..
            }                
        });            
    });
});​
于 2012-10-19T19:27:06.613 回答
0
  1. 是的,您的权利必须专门使用 Jquery $.ajax() 或 $.post() 函数。
  2. 子类别下拉列表应在更改事件上监听父类别。在 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 
    
                 }
               });
    
        });
    
于 2012-10-19T19:30:59.137 回答