Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/229.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 通过链接向url添加其他查询_Php - Fatal编程技术网

Php 通过链接向url添加其他查询

Php 通过链接向url添加其他查询,php,Php,我有一个使用查询字符串检索数据的站点,如下所示: <div id="menu-sort-dropdown" class="search-filter-item"> <p><?php echo $query_sort_title; ?></p> <ul class="dropdown-menu"> <li><a href="/teachings/">Newest</a>&

我有一个使用查询字符串检索数据的站点,如下所示:

<div id="menu-sort-dropdown" class="search-filter-item">
    <p><?php echo $query_sort_title; ?></p>
    <ul class="dropdown-menu">
        <li><a href="/teachings/">Newest</a></li>
        <li><a href="?sort=SORT_DATE_LIT_ASC">Oldest</a></li>
        <li><a href="?sort=SORT_NAME_ASC">Alphabetically</a></li>
    </ul>
</div>

<div id="menu-category-dropdown" class="search-filter-item">
    <p><?php echo $query_category_title; ?></p>
    <ul class="dropdown-menu">
        <li><a href="/teachings/">All</a></li>
        <li><a href="?category=Coaching">Coaching</a></li>
        <li><a href="?category=Conversation">Conversation</a></li>
        <li><a href="?category=Craft">Craft</a></li>
        <li><a href="?category=Creativity">Creativity</a></li>
    </ul>
</div>

但我可以做到这两个方面:

teachings/?category=Creativity&sort=SORT_NAME_ASC

我不知道该怎么加。如果我只是加上这条带子,它会变得一团糟

如果您一直单击
类别
排序
,则以下代码不会“复制”url中的值。它可以复制/粘贴并运行

// to check the values
echo '<pre>';
print_r($_GET);
echo '</pre>';

echo '<hr>';

function foo($type, $value){
    $args = $_GET;
    $args[$type] = $value; // prevent duplication
    return http_build_query($args); // returns new query string
}

?>
<a href="?<?php echo foo('sort', 'SORT_DATE_LIT_ASC'); ?>">SORT_DATE_LIT_ASC</a>
<br>

<a href="?<?php echo foo('sort', 'SORT_NAME_ASC'); ?>">SORT_NAME_ASC</a>
<br>


<a href="?<?php echo foo('category', 'Coaching'); ?>">Coaching</a>
<br>
<a href="?<?php echo foo('category', 'Conversation'); ?>">Conversation</a>
//检查值的步骤
回声';
打印(美元);;
回声';
回声“
”; 函数foo($type,$value){ $args=$\u GET; $args[$type]=$value;//防止重复 返回http_build_query($args);//返回新的查询字符串 } ?>



您还可以使用代码删除其中任何一个。将其添加到上一个代码之后(也可复制/粘贴)。看一看:

var menus = [];
function addElement(type, element) {
    menus[type] = element;
}




现在,您的下拉元素可以执行一个简单的操作-转到提供的url。如果您想选择一些值,那么您的元素应该存储选定的值,而不是打开的url。例如,您可以使用这个JS代码来实现这一点

<div id="menu-sort-dropdown" class="search-filter-item">
    <p><?php echo $query_sort_title; ?></p>
    <ul class="dropdown-menu">
        <li><a href="/teachings/">Newest</a></li>
        <li><a href="javascript: addElement(0, 'sort=SORT_DATE_LIT_ASC');">Oldest</a></li>
        <li><a href="javascript: addElement(0, 'sort=SORT_NAME_ASC');">Alphabetically</a></li>
    </ul>
</div>

<div id="menu-category-dropdown" class="search-filter-item">
    <p><?php echo $query_category_title; ?></p>
    <ul class="dropdown-menu">
        <li><a href="/teachings/">All</a></li>
        <li><a href="javascript: addElement(1, 'category=Coaching');">Coaching</a></li>
        <li><a href="javascript: addElement(1, 'category=Conversation');">Conversation</a></li>
        <li><a href="javascript: addElement(1, 'category=Craft');">Craft</a></li>
        <li><a href="javascript: addElement(1, 'category=Creativity');">Creativity</a></li>
    </ul>
</div>
上面的类型是菜单类型的编号索引。例如,
0
可以用于排序,
1
可以用于类别-这是为了确保您只能从菜单类型中选择一个值。现在您可以用这样的内容替换代码

<input type="button" onclick="openUrl('?')" value="Go to URL">
以及
openUrl
函数的JS代码


您可能需要更改函数名xD
var menus = [];
function addElement(type, element) {
    menus[type] = element;
}
<div id="menu-sort-dropdown" class="search-filter-item">
    <p><?php echo $query_sort_title; ?></p>
    <ul class="dropdown-menu">
        <li><a href="/teachings/">Newest</a></li>
        <li><a href="javascript: addElement(0, 'sort=SORT_DATE_LIT_ASC');">Oldest</a></li>
        <li><a href="javascript: addElement(0, 'sort=SORT_NAME_ASC');">Alphabetically</a></li>
    </ul>
</div>

<div id="menu-category-dropdown" class="search-filter-item">
    <p><?php echo $query_category_title; ?></p>
    <ul class="dropdown-menu">
        <li><a href="/teachings/">All</a></li>
        <li><a href="javascript: addElement(1, 'category=Coaching');">Coaching</a></li>
        <li><a href="javascript: addElement(1, 'category=Conversation');">Conversation</a></li>
        <li><a href="javascript: addElement(1, 'category=Craft');">Craft</a></li>
        <li><a href="javascript: addElement(1, 'category=Creativity');">Creativity</a></li>
    </ul>
</div>
<input type="button" onclick="openUrl('?')" value="Go to URL">
function openUrl(prefix) {
    var url = prefix + menus.join('&');
    document.location.href = url;
}