使用动态下拉过滤器在URL中添加/删除GET参数

时间:2018-12-15 10:14:00

标签: php jquery


我想为数据库查询客户端创建4个动态下拉过滤器。 由于我的pdo-query从URL获取所有信息,因此我需要通过添加,更新和删除这4个参数来操纵该URL。 现在,当我手动更改URL时,所有查询都能完美运行。 我猜想使用jQuery是必经之路,但是我需要使用这种语言的大量帮助。

下拉菜单的代码如下:

<select id="dynamic_select_company"> // On change the selected option is triggered
<?php 
  $countcompany = $pdo->prepare( $filterkomplex1 );
  $countcompany->execute(); ?>
<option value="Browse.php" selected>Choose Company...</option>

<?php while($showcompany = $countcompany->fetch()) {?>
<option 
<?php
  if ($_GET['Company'] == $showcompany['Company']) { ?> selected="true" <?php }; ?>
    value="<?php echo $furl ?>&Company=<?php echo $showcompany['Company']?>">  // i know this will append infinity GET_Parameters
<?php echo $showcompany['Company']?> (<?php echo $showcompany['anzahl']?>) </option>
<?php };?>
</select>

<button>Delete part of string where GET-Parameter is &Company=XYZ</button>

//和其余3个副本:

<select id="dynamic_select_line"> ...
<button>Delete part of string where GET-Parameter is &Line=XYZ</button>    
<select id="dynamic_select_group"> ...
<button>Delete part of string where GET-Parameter is &Group=XYZ</button>
<select id="dynamic_select_year">  ...  
<button>Delete part of string where GET-Parameter is &Year=XYZ</button> 

清除所有过滤器将没有问题,因为我可以简单地使href不带参数...
我不知道下一步该怎么做。

1 个答案:

答案 0 :(得分:2)

您可以使用http_build_query如下操作url字符串:

$url  = 'Browse.php';
$data = array('Company' => 'W',
              'Line'    => 'X',
              'Group'   => 'Y',
              'Year'    => 'Z');

$queryString = http_build_query($data); // Company=W&Line=X&Group=Y&Year=Z
echo $url . '?' . $queryString;

或者您可以使用http-build-url,但是您需要PECL pecl_http:

echo http_build_url($url, $data, HTTP_URL_JOIN_QUERY);