PHP如何使用GET方法对URL中的累积结果进行排序

PHP如何使用GET方法对URL中的累积结果进行排序,php,codeigniter,sorting,url,Php,Codeigniter,Sorting,Url,我正在使用一个排序函数,该函数应该使用两种不同的html表单对结果进行排序。第一个表单用于排序A-Z、Z-A、Price-Asc、Price-Desc。第二个表单用于显示每页不同数量的结果。我的问题是如何使这些表单“一起”工作。例如,在第一个表单中的“更改”事件中,我将在URL中获得类似于“”orderBy=“A-Z”的内容。然后,如果我决定更改每页的结果数,我希望在URL中保留当前的get参数,并添加另一个类似于“”orderBy=“A-Z?perPage=12”的参数。我在一个网站上看到了这

我正在使用一个排序函数,该函数应该使用两种不同的html表单对结果进行排序。第一个表单用于排序A-Z、Z-A、Price-Asc、Price-Desc。第二个表单用于显示每页不同数量的结果。我的问题是如何使这些表单“一起”工作。例如,在第一个表单中的“更改”事件中,我将在URL中获得类似于“”orderBy=“A-Z”的内容。然后,如果我决定更改每页的结果数,我希望在URL中保留当前的get参数,并添加另一个类似于“”orderBy=“A-Z?perPage=12”的参数。我在一个网站上看到了这种功能,我需要做同样的功能,但我不确定它的概念和工作原理。非常感谢您的每一个回答和分享

<form method="get" id="form_sort">
<select name="sort" onchange="form_sort.submit()">
    <option value="">Please Choose...</option>
    <option value="name">name</option>
    <option value="price">price</option>
</select>
</form>

<form method="get" id="form_order">
<select name="order" onchange="form_order.submit()">
    <option value="">Please Choose...</option>
    <option value="asc">ASC</option>
    <option value="desc">DESC</option>
</select>
</form>

<form method="get" id="form_limit">
<select name="limit" onchange="form_limit.submit()">
    <option value="">Please Choose...</option>
    <option value="1">1</option>
    <option value="2">2</option>
    <option value="3">3</option>
</select>
</form>

请选择。。。
名称
价格
请选择。。。
ASC
描述
请选择。。。
1.
2.
3.

表单将自动为您构建查询字符串(使用GET)。如果可以在页面加载时选择
值,则每次更新表单时,相同的值都将保持选中状态

下面是一个例子:

<form method="get">
    <select name="sort">
        <option value="">Please Choose...</option>
        <option value="name"<?=isset($_GET['sort']) && $_GET['sort']=='name' ? ' selected' : ''?>>name</option>
        <option value="price"<?=isset($_GET['sort']) && $_GET['sort']=='price' ? ' selected' : ''?>>price</option>
    </select>
    <select name="order">
        <option value="">Please Choose...</option>
        <option value="asc"<?=isset($_GET['order']) && $_GET['order']=='asc' ? ' selected' : ''?>>ASC</option>
        <option value="desc"<?=isset($_GET['order']) && $_GET['order']=='desc' ? ' selected' : ''?>>DESC</option>
    </select>
    <select name="limit">
        <option value="">Please Choose...</option>
        <option value="1"<?=isset($_GET['limit']) && $_GET['limit']==1 ? ' selected' : ''?>>1</option>
        <option value="2"<?=isset($_GET['limit']) && $_GET['limit']==2 ? ' selected' : ''?>>2</option>
        <option value="3"<?=isset($_GET['limit']) && $_GET['limit']==3 ? ' selected' : ''?>>3</option>
    </select>

    <input type="submit">

</form>

请选择。。。
>价格
请选择。。。
>描述
请选择。。。
>2

表单将自动为您构建查询字符串(使用GET)。如果可以在页面加载时选择
值,则每次更新表单时,相同的值都将保持选中状态

下面是一个例子:

<form method="get">
    <select name="sort">
        <option value="">Please Choose...</option>
        <option value="name"<?=isset($_GET['sort']) && $_GET['sort']=='name' ? ' selected' : ''?>>name</option>
        <option value="price"<?=isset($_GET['sort']) && $_GET['sort']=='price' ? ' selected' : ''?>>price</option>
    </select>
    <select name="order">
        <option value="">Please Choose...</option>
        <option value="asc"<?=isset($_GET['order']) && $_GET['order']=='asc' ? ' selected' : ''?>>ASC</option>
        <option value="desc"<?=isset($_GET['order']) && $_GET['order']=='desc' ? ' selected' : ''?>>DESC</option>
    </select>
    <select name="limit">
        <option value="">Please Choose...</option>
        <option value="1"<?=isset($_GET['limit']) && $_GET['limit']==1 ? ' selected' : ''?>>1</option>
        <option value="2"<?=isset($_GET['limit']) && $_GET['limit']==2 ? ' selected' : ''?>>2</option>
        <option value="3"<?=isset($_GET['limit']) && $_GET['limit']==3 ? ' selected' : ''?>>3</option>
    </select>

    <input type="submit">

</form>

请选择。。。
>价格
请选择。。。
>描述
请选择。。。
>2

邮政编码挥鞭。我们不是为你建造东西,我们只是修复你正在建造的东西。我不想让你为我建造任何东西。我只是想征求一些关于排序应该如何工作的建议和概念。谢谢,下次我会记住的。whiplash,你的问题下面有一个“编辑”按钮,你可以发布代码。无需等待下一次。代码使您的问题更清晰,这样我们就可以看到您正在尝试做什么。如果你和墨西哥人讨论墨西哥玉米卷,你会说西班牙语。如果你和编写代码的人谈论PHP,你就是在说代码。用他们的母语解释事情更容易。我会在你发布代码后立即删除我的否决票:)这里有一些代码..主要问题是我需要使用不同的表单,没有任何提交按钮,这就是为什么我制作了onchange事件,但我不知道这是否应该像这样工作。post code whiplash。我们不是为你建造东西,我们只是修复你正在建造的东西。我不想让你为我建造任何东西。我只是想征求一些关于排序应该如何工作的建议和概念。谢谢,下次我会记住的。whiplash,你的问题下面有一个“编辑”按钮,你可以发布代码。无需等待下一次。代码使您的问题更清晰,这样我们就可以看到您正在尝试做什么。如果你和墨西哥人讨论墨西哥玉米卷,你会说西班牙语。如果你和编写代码的人谈论PHP,你就是在说代码。用他们的母语解释会更容易。我会在你发布代码后立即删除我的否决票:)这里有一些代码..主要问题是我需要使用不同的表单,没有任何提交按钮,这就是为什么我做了onchange活动,但我不知道这是否应该像这样工作。我不完全确定这是他所寻找的答案,因为他提到有两种不同的形式。我非常感谢你的回答。我不完全确定这是他所寻找的答案,因为他提到有两种不同的形式。我感谢你回答得很好。