2015-12-08 54 views
0

我想顯示最後三次顯示的搜索。我設法通過使用cookie顯示最後一個值,然後在搜索時顯示它。但是,如何添加兩個,當第四個添加時,它會將最後一個刪除?我認爲這是一個數組,但不知道如何去做。該網站允許您搜索數據庫中的汽車並將其顯示在一張表中。在下面顯示代碼。如果你想要其他的代碼,只要問一下。顯示cookie數組的3個值?

在search.php中頁:

if(isset($_COOKIE['searchCar'])) 
    $searchCar = $_COOKIE['searchCar']; 
    else 
    $searchCar = ""; 

<h2>Search for Cars</h2>   
    <form action="cars_results.php" method="post"> 
    <p>Enter Car Make or Model: <input type="text" name="searchCar" value="<?=$searchCar?>"></p> 
    <p><input type="submit" value="Search"></p> 
    </form> 

在car_results.php頁:

$searchCar = $_POST['searchCar']; 
    setcookie("searchCar", $searchCar); 

    echo "<table>"; 
    echo "<h2>Previous Searches</h2>"; 
    echo "$searchCar<br><br>"; 

回答

0

當你得到一個貼值,將其存儲在cookie

if(isset($_POST['searchCar'])) 
    $v = isset($_COOKIE['searchCar'])? $_COOKIE['searchCar'] : "" ; 
    $searchCar = $_POST['searchCar'].",".v; 
    else 
    $searchCar = ""; 

setcookie("searchCar", $searchCar); 

現在當你需要顯示最後三次搜索時使用這個:

if(isset($_COOKIE['searchCar'])){ 
$searchCar =$_COOKIE['searchCar']; 
$k = explode(",", $searchCar); 
$val1 = $k[0]; 
$val2 = $k[1]; 
$val3 = $k[2]; 
echo "<table>"; 
echo "<h2>Previous Searches</h2>"; 
echo "$val1<br><br>"; 
echo "$val2<br><br>"; 
echo "$val3<br><br>"; 
} 
+0

真的不理解這個,對不起。新的PHP。如何將搜索值分配給$ val變量? – Macast

+0

請查看已更新的答案 – thepiyush13

+0

我現在沒有錯誤,我的搜索工作正常,但是當我在瀏覽器中檢查cookie時,沒有任何錯誤。它沒有顯示以前的搜索,甚至沒有顯示錶格。 – Macast

0

Cookie存儲只能存儲字符串,因此您需要以逗號分隔或json格式或類似的方式保存上次搜索。

//Read current cookie 
$searchCar = $_COOKIE['searchCar']; 
//decode the cookie 
$last_searches = json_decode($searchCar); 
//add current search term to cookie array 
$last_searches[] = $_POST['searchCar']; 
//Do Search 
//Send Cookie 
setcookie("searchCar", json_encode($searchCar)); 

顯示舊的搜索只是遍歷$last_searches

$searchCar = $_COOKIE['searchCar']; 
$last_searches = json_decode($searchCar); 
foreach($last_searches as $search){ 
    echo $search; 
} 

請不要依賴這個代碼,它只是一個概念;我沒有自己測試過