2014-04-04 85 views
1

點擊時,這是這裏的問題的延伸 - Create a new page for different php ORDER BY statement?改變會話變量上的鏈接

基本上,我需要改變一個會話變量和使用PHP(我認爲),同時刷新頁面。

I.e.當我點擊我的網頁上<a href="#">Sort by date<a>以下的事情發生:

  • $_SESSION['orderby']; = 'date';

  • 頁面刷新

然後,會話變量將被改變,後來在我的代碼中使用。

我可能需要使用javascript?我不太確定,我會怎麼做?

編輯

我不想/需要被重定向到另一個頁面,該頁面只需要刷新。基本上我需要點擊一個鏈接(或按鈕)和一個PHP變量需要改變。

AJAX可能嗎?

回答

1

你可以做的是在URL後附加一個GET值,並用PHP讀取。

例如:

<!-- HTML --> 
Sort by <a href='?sort=date'>date</a> 

// PHP: 
if (isset($_GET['sort'])) { 
    $_SESSION['orderby'] = $_GET['sort']; 
} 

此外,您可以檢查GET - 值是給定陣列中(以避免從URL操作錯誤):

if (isset($_GET['sort'])) { 
    $sorts = array('date', 'ranking', 'page'); // ... 
    $_SESSION['orderby'] = (in_array($_GET['sort'], $sorts) ? $_GET['sort'] : 'STANDARD SORT'); 
} 
+0

問題是我不想在點擊鏈接時更改網址。我簡單地需要頁面刷新和會話變量進行更改。使用上面的代碼,當鏈接被點擊時,網址從... halls.php?id = 1改變爲... halls.php?sort = date這明顯顯示頁面不正確? @Padarom – JoeMorgan

0

使用AJAX發送您的變種以php文件更新會話

$.ajax({ 
     type: 'POST', 
     url: 'date.php', 
     data: {'date':date}, 
     success: function(result) { 
     console.log(result) 
     } 
    }); 

date.php

<?php 
    session_start(); 
    if(isset($_POST['date'])){ 
     $_SESSION['date'] = $_POST['date']; 
     echo 'Date set to: '.$_SESSION['date']; 
     } 
    }