我的网站上的网址出现了问题。我试图获取给定GET参数的链接,但我也得到了我之前的参数。
我的网址如下:
www.cdwinkel.dev/search-results?genre=Pop&medium=DVD&medium=Single。
应该是:
www.cdwinkel.dev/search-results?genre=Pop&medium=Single。
我正在运行以下代码:
$data['url'] = createurl();
function createurl(){
$i = 1;
$string = "?";
$keys = array_keys($_GET);
foreach($_GET as $get){
if($get != ""){
$string .= $keys[$i] . "=" . $get ."&";
$i++;
}
}
$string = rtrim($string, "&");
return $string;
}
$ i = 1,因为我的数组中的第一个值是空的。
我的按钮看起来像这样:
<a href='".$data['url'].'&medium='.$names[$i]."'>
我想我应该在href标签中设置&amp; medium =。$ names [$ i] , 但我不会在我的函数中获得新的$ names [$ i],所以如果我不添加它,我就不会获得新的url。
我期待你的回应。
此致 Kars Takens
答案 0 :(得分:0)
此时我已经使用正确的数组键和值创建了一个数组。
$url = array_slice($_GET, 1);
返回以下数组:
array (size=2)
'genre' => string 'Pop' (length=3)
'medium' => string 'DVD' (length=3)
在此之后我将其解码为一个新字符串:
genre=Pop&medium=DVD
我在foreach循环中创建了6个按钮,但是我得到了&amp; medium ='VALUE'两次。这只发生在第一次之后。所以我的按钮第一次运行良好。
<?php
$names = array_keys($data['tellen']);
$i = 0;
foreach($data['tellen'] as $m){
echo "<li><a href='search-results?".$data['url'].'&medium='.$names[$i]."'>". $names[$i] ." <span class='product-amount'>(". $m[0]->count. ")</span></a></li>";
$i++;
}
希望您能够进一步了解这些信息。
我在forloop中添加了这个问题解决了我的问题:
foreach($data['tellen'] as $m){
if(isset($_GET['medium'])){
unset($_GET['medium']);
$url = array_slice($_GET, 1);
$data['url'] = urldecode(http_build_query($url));
}
echo "<li><a href='search-results?".$data['url'].'&medium='.$names[$i]."'>". $names[$i] ." <span class='product-amount'>(". $m[0]->count. ")</span></a></li>";
$i++;
}