所以到目前为止,我一直在 Stackoverflow 上查看所有可能的答案。但无论我如何尝试,我都无法让它发挥作用。
我正在尝试根据单击的链接设置会话变量。
这可以是“网格”或“列表”
我可以更改类,以及相应 div 的视图。但是,我对 php 的 $.post 调用没有传递变量(我假设这是因为什么都没有发生)或者我的 php 调用是错误的。
这是我的代码:
HTML
<li class="display-control-list-item" > <a href="javascript: void(0)" class="js-set-display list" id="list" > Listview </a> </li>
<li class="display-control-list-item" > <a href="javascript: void(0)" class="js-set-display grid" id="grid" > Gridview </a> </li>
查询
function set_display_type( type ) {
if ( type == 'grid' ) {
$( '.js-set-display.list' ).removeClass( 'active' );
$( '.js-set-display.grid' ).addClass( 'active' );
$( '.content-inner' ).attr({ 'class' : 'container content-inner gridview' });
var view = 'gridview';
$.post( 'library/fx.behaviour.php' , { setdisplay: view });
}
if ( type == 'list' ) {
$( '.js-set-display.grid' ).removeClass( 'active' );
$( '.js-set-display.list' ).addClass( 'active' );
$( '.content-inner' ).attr({ 'class' : 'container content-inner listview' });
var view = 'listview';
$.post( 'library/fx.behaviour.php' , { setdisplay: view });
}
}
和我在 fx.behaviour.php 中的 PHP
$_SESSION[ 'display' ] = 'listview'; // set default
if ( $_POST[ 'setdisplay' ] != '' ) {
$view = $_POST[ 'setdisplay' ];
$_SESSION[ 'display' ] = $view;
}
简而言之:单击 url 并通过 jquery 将值传递给 php 后,会话变量不会更新。