所以到目前为止我一直在查看Stackoverflow上所有可能的答案。 但无论我如何尝试,我都无法让它发挥作用。
我正在尝试根据点击链接设置会话变量。
这可以是’网格’或’列表’
我可以更改类,以及相应div的视图。 但是,我的$ .post调用php并没有传递变量(我假设这个,因为没有任何反应)或我的php调用是错误的。
这是我的代码:
HTML
Listview Gridview
JQUERY
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 }); } }
和我的PHP在fx.behaviour.php中
$_SESSION[ 'display' ] = 'listview'; // set default if ( $_POST[ 'setdisplay' ] != '' ) { $view = $_POST[ 'setdisplay' ]; $_SESSION[ 'display' ] = $view; }
简而言之:在点击url并通过jquery将值传递给php后,sessionvariable将不会更新。
这就是我要做的事情(为了快速切出一些代码):
HTML(如果使用jQuery,则不需要javascript void代码):
jQuery的:
$('#set-display a').click(function(e) { var type = $(this).attr('id'); var view = (type === 'grid') ? 'gridview' : 'listview'; $.post('library/fx.behaviour.php', { display: view }); // you can use the view or type variable to trigger your other code });
PHP:
session_start(); // if not called already // if POST display not empty and is expected string then use it, otherwise default to 'listview' $_SESSION['display'] = ( ! empty($_POST['display']) && in_array($_POST['display'], array('listview', 'gridview'))) ? $_POST['display'] : 'listview';
我使用$_POST['display']
而不是setdisplay
来命名一致性。 也许值得检查你的jQuery调用获得有效的200响应。 在Chrome中,您可以通过转到检查器,选择网络选项卡,单击按钮并查看请求来执行此操作。
尝试将你的php包含在jQuery文件中(只是为了测试)并回显一些echo 'Foobar';
并在你的jQuery执行文件中添加 并尝试更改包含行中的目录
UPDATE
试试这个
在访问函数范围内的字符串时,我认为你不应该{}:
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 ); } }
以上就是jQuery教程分享通过jquery click事件在php中设置会话变量相关内容,想了解更多jQuery开发(异常处理)及jQuery教程关注计算机技术网(www.ctvol.com)!)。
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/jquerytutorial/532198.html