【问题标题】:Codeigniter Array in GET variable Clean URLGET 变量 Clean URL 中的 Codeigniter 数组
【发布时间】:2013-12-02 01:31:06
【问题描述】:

我想问是否有任何选项如何将 GET 中的带有 Array 的 URL 更改为 CLEAN。

例子:

来自:example.com/school/4/?city[]=1&city[]=2&city[]=3
我需要这个:example.com/school/4/?city=1,2,3

(我使用 Codeigniter 框架。)

我正在考虑 mod_rewrite,但我无法做到。
非常感谢您的帮助。
谢谢。

// 再解释一下: 我需要将第一个提到的网址更改为第二个。

【问题讨论】:

    标签: php arrays codeigniter mod-rewrite get


    【解决方案1】:

    如果你知道它会以这种格式出现,你可以这样做:

    $_GET['city'] = explode(",", $_GET['city']);
    

    您会遇到的唯一问题是值实际上包含逗号。

    如果您需要让您的表单以这种方式实际提交,那就是另一个问题了。为了简单起见,我假设您使用 jQuery,但您可以这样做:

    $('input[type="submit"]').on('click', function() {
       var cities = '';
       $('[name="city"]').each(function() {
            cities = cities + $(this).val() + ',';
       });
       cities = cities.substr(0,cities.length-1);
       $('[name="city"]').remove();
       $('<input name="city" value="' + cities + '">').appendTo('form');
    });
    

    当他们点击提交时,这将删除您的所有城市字段,并添加一个新的城市字段,其中包含逗号分隔列表中的值。您可能需要将其附加到表单提交操作中,但我不确定 jquery 如何处理提交事件中添加的元素。

    【讨论】:

    • 如果他试图从一个数组 (city[]=1&amp;city[]=2&amp;city[]=3) 转到一个逗号分隔的字符串 (city=1,2,3) 会不会是 implode()
    • 我在想他希望他们在 url 中发送一个逗号分隔的字符串,现在他需要将它变成一个数组,以便他可以在他的应用程序中使用它。我可能弄错了。
    • 是否可以从 HTML Form 以这种格式(city=1,2,3)发送?
    猜你喜欢
    • 1970-01-01
    • 2011-10-28
    • 1970-01-01
    • 1970-01-01
    • 2016-10-05
    • 2014-04-18
    • 2011-02-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多