如何在 Joomla 中使用 AJAX 更改另一个选择列表

2023-12-12

我有一个国家列表和每个国家的城市列表。我将两者都设置为下拉列表。

我的问题是,当所选国家/地区发生变化时,如何更改列出的城市?

这是我的 XML 代码:

<field name="country_id" type="sql" class="country" label="Country"
       description="Country" required="true"
       query="SELECT id, title FROM #__destination_countries WHERE state = 1"
       key_field="id" value_field="title" filter="raw">
</field> 

<field name="city_id" type="sql"
       query="SELECT id, title FROM #__destination_cities WHERE state = 1"
       key_field="id" value_field="title" class="city" label="City"
       description="City" required="true" filter="raw">
</field> 

阿贾克斯代码:

jQuery(document).ready(function($) {
    $(".country").change(function(){
        country_id = $("#" + this.id).val();
        $.ajax({
            url:'index.php?option=com_destination&task=cities.getListCities',
            type: "POST",
            data: {
                'country_id': country_id
            }
        }).done(function(msg) {
            console.log(msg);
            $(".city").html(msg);

        })
    })
});

这是我的服务器端代码

public function getListCities()
{
    $country_id = JRequest::getInt('country_id', 0);
    $model = $this->getModel();
    $model->setState('filter.country_id', $country_id);
    $items = $model->getItems();
    $option = array();
    foreach ($items as $key => $item) {
        $option[] = "<option value='{$item->id}'>{$item->title}</option>";
    }
    $return = implode("", $option);
    echo $return;
    exit;
}

但它没有按照我想要的方式显示,它显示为这样

<select style="display: none;" required="required" id="jform_city_id" name="jform[city_id]" class="city required chzn-done">
    <option value="1">City 1 of Coutry 1</option>
</select>
<div style="width: 220px;" class="chzn-container chzn-container-active" id="jform_city_id_chzn">
    <a tabindex="-1" href="javascript:void(0)" class="chzn-single chzn-single-with-drop">
        <span>City 1 of Coutry 1</span>
        <div><b></b></div>
    </a>
    <div class="chzn-drop" style="display: block; width: 218px; top: 24px;">
        <div class="chzn-search"><input tabindex="-1" style="width: 183px;" autocomplete="off" type="text"></div>
        <ul class="chzn-results">
            <li id="jform_city_id_chzn_o_0" class="active-result" style="">City 1 of Coutry 1</li>
            <li id="jform_city_id_chzn_o_1" class="active-result result-selected" style="">City 2 of Coutry 1</li>
        </ul>
    </div>
</div>

只是更改了选择选项,但没有更改以下内容。


另请注意,您正在使用已弃用的JRequest::getInt();你应该在哪里使用

$input = JFactory::getApplication()->input;
$country_id = $input->getInt('country_id', 0);

为了更改第二个选择,您必须触发第二个选择的更新:

$(".country").change(function(){
    // your ajax call from your code

    // on success, you need to trigger the second select by using
    $(".city_id").val(your_value_from_ajax_response).trigger("liszt:updated");

});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Joomla 中使用 AJAX 更改另一个选择列表 的相关文章

随机推荐

  • Powerpoint 中形状的存在

    我想在启用宏的 powerpoint 演示文稿上的命令按钮上建立一个条件 如果该形状存在 那么我希望将其删除 否则按钮应该生成一个关于不存在这样的形状这一事实的声明 目前我的生存遇到了麻烦 如何让 Power point 识别形状为空 这是
  • 以编程方式查找 VS2017 最近使用的 (MRU) 解决方案和项目

    我知道 Visual Studio 2017 现在支持所有 SKU 企业版 专业版和社区版 的无注册表 并行安装说明here 我们需要访问 VS2017 最近使用的 MRU 解决方案和项目的列表 对于之前的 VS2017 版本 我们过去常常
  • 使用Python获取字符的unicode代码点

    在Python API中 有没有办法提取单个字符的unicode代码点 Edit 如果有必要的话 我使用的是 Python 2 7 如果我正确理解你的问题 你可以这样做 gt gt gt s gt gt gt s encode unicod
  • MATLAB:如何读取文本文件的每第N行?

    我有一些数据 格式如下 dtau E av variance N sims Time 0 001 0 497951 0 000211625 25 Sun Apr 3 18 18 12 2011 dtau E av variance N si
  • 如何以编程方式将 XmlNode 添加到 XmlNodeList

    我有一个产品的 XmlNodeList 其值放入表中 现在 我想在找到某个产品时向列表添加一个新的 XmlNode 以便在同一循环中将新产品视为与文件中最初的项目相同 这样函数的结构不需要改变 只需添加一个接下来要处理的额外节点即可 但 X
  • 如何通过 Drive API(PHP 客户端)创建公共 Google 文档

    这就是我到目前为止所得到的 通过结合this and this require once google api php client src Google Client php require once google api php cli
  • 如何在android中获取sdcard中所有可用的图像文件? [复制]

    这个问题在这里已经有答案了 可能的重复 如何从模拟器的sdcard中获取所有图片并将其显示在listView中 我的sdcard下有很多文件夹 每个文件夹包含图像文件 文本文件和子文件夹 如何获取 SD 卡下所有文件夹和子文件夹中的所有可用
  • 如何在驱动模块中使用 seq_file 实现可写的 proc 文件

    在书中Linux 设备驱动程序第三版 proc文件系统作为输出方式 导出某个设备驱动程序的运行状态 然而 在某些情况下 proc文件系统用作更改驱动模块内部参数的一个接口 我用谷歌搜索了很多 发现互联网上的一些实现太旧了 他们使用creat
  • 如何创建 bash 脚本来检查 SSH 连接?

    我正在创建一个 bash 脚本 该脚本将登录远程计算机并创建私钥和公钥 我的问题是远程机器不是很可靠 而且它们并不总是处于运行状态 我需要一个 bash 脚本来检查 SSH 连接是否已启动 在实际创建密钥以供将来使用之前 您可以使用 ssh
  • Perl:解释如何使用“uni::perl”模块 - 加载编译指示和其他模块

    In my 上一个问题我问如何一次使用多个模块 拿到一个完美的答案 and 另一个是什么给我指出了现代 Perl模块什么的 其实很简单 经过一番搜索 CPAN 我发现了另一个名为大学 perl 真正复杂的是 它相当于 use strict
  • 我的类似界面逻辑有什么问题?

    所以问题如下 为每个进入队列的学生分配一个唯一的 ID 队列根据以下标准 优先级标准 为学生提供服务 首先服务的是累积平均绩点 CGPA 最高的学生 任何具有相同 CGPA 的学生都将按姓名按升序区分大小写的字母顺序排列 任何具有相同 CG
  • JS 中的全局变量有害吗? [关闭]

    Closed 这个问题需要多问focused 目前不接受答案 根据这篇文章 http www mediaevent de javascript globale lokale variablen html 全局变量在 JS 中非常危险 很抱歉
  • 为什么 java.io.FileDescriptor 的构造函数是公共的?

    JavaDoc 用于java io FileDescriptor FileDescriptor says 构造一个 无效的 FileDescriptor 对象 如果构造函数没有目的 为什么它的访问级别没有声明为包私有 这个构造函数是公共的
  • 如何计算iOS应用程序启动时间

    我想知道是否有一种快速有效的方法来确定从打开应用程序到完全加载的时间 我在想我会做一些类似的事情NSDate对象在didFinishLaunchingWithOptions并在我的中得到另一个UIViewController 然后比较它们
  • ADB 在 Windows 上并行运行多个 Android 设备

    有没有办法在多个连接的 Android 设备上并行运行 ADB 命令 我需要在 200 台设备上批量安装 5 个应用程序 亚行似乎是最快的选择 但是 如果我可以在多个设备上并行执行此操作 那么它将进一步节省时间 创建一个batch inst
  • Swift 检查文本字段是否为空

    我知道有大量的堆栈溢出页面解释了如何执行此操作 但每次我从这里获取代码并将其放入其中时 我都会遇到相同的错误 并且该错误的值是 字符串 没有成员 文本 有什么可靠的方法可以快速检查文本字段是否为空吗 let userEmail userEm
  • C 将指针传递给函数指针并使用 malloc

    我正在尝试获取标准输入以扫描两个二维并行数组 arrAtk arrDef x行 xy列 yy每行的长度都是可变的 第一行输入是x每个数组中的行数 第二行是y为第一行的列数 接下来是y要读入 arrAtk 数组的整数 然后另一个y要读入 ar
  • UIImageView Mask Layer 不是来自角落,直到第一次滚动 PageViewController

    我想达到这个结果 所以我需要在底部添加面具 但这是我得到的 我尝试过的代码 private func setupImageCutPath let path UIBezierPath path move to zero path addLin
  • Jquery / Javascript 根据输入字段更改表单操作

    我有这样的表格
  • 如何在 Joomla 中使用 AJAX 更改另一个选择列表

    我有一个国家列表和每个国家的城市列表 我将两者都设置为下拉列表 我的问题是 当所选国家 地区发生变化时 如何更改列出的城市 这是我的 XML 代码