0
URL參數正在興建樓宇的URL和參數值(在$ url變量),就像這樣:PHP - 基於用戶輸入的值在數組
$query = trim($_GET["Query"]);
if (!empty($query)) {
$url = "results.php?";
$url .= "&Query=$query";
}
$store = $_GET["Store"];
if (!empty($store)) {
$url .= "&Store=$store";
}
這些URL參數(內置於$網址變量)將用於解析XML文檔。然後最終將顯示搜索結果。
<product category="Tablet">
<name>ipad-1</name>
<store>Best Buy</store> // problem will later occur when store element has two words
</product>
<product category="Tablet">
<name>ipad-2</name>
<store>Amazon</store>
</product>
生成多頁搜索結果,並在此創建頁碼鏈接。
for($i=0; $i<$searchResultsFound; $i++) {
if ($i == $a_condition) {
//This array below is where the probably likely is
$pageNumberLinks[] = "<a href=".$url."&firstSearchResult=".$firstSearchResultValue."&lastSearchResult=".$lastSearchResultValue.">".$pageNumberLink_i . "</a>";
}}
使用此foreach循環顯示頁碼鏈接。
foreach ($pageNumberLinks as $PageNumberLinks) {
echo $PageNumberLinks . " ";
}
頁碼鏈接工作正常時,存儲參數(從XML元素拉到名爲「存儲」)只有一個字(IE亞馬遜),並在地址欄中的URL看起來像這樣:
results.php?&Query=ipad&store=Amazon&firstSearchResult=10&lastSearchResult=20
然而,當存儲參數有兩個詞(IE百思買),該URL只顯示第一個字「最佳」和切斷在地址欄中的URL的其餘部分,看起來像這樣:
results.php?&Query=ipad&store=Best
和源代碼如下所示:
<a href=results.php?&Query=ipad&store=Best&firstSearchResult=10&lastSearchResult=20>2</a>
我的猜測是,當在for循環插入陣列上方的頁面鏈接數不正確編碼。有沒有人注意到有什麼不正確的編碼在這裏:
$pageNumberLinks[] = "<a href=".$url."&firstSearchResult=".$firstSearchResultValue."&lastSearchResult=".$lastSearchResultValue.">".$pageNumberLink_i . "</a>";
作爲一個方面說明,當編碼這樣的URL正常工作:
<a href="<?php echo $url; ?>&Store=<?php echo $store; ?>">Anchor text</a>