2014-04-04 36 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']; 
     } 
    }