jQuery技术:通过jquery click事件在php中设置会话变量

所以到目前为止我一直在查看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

        (0)
        上一篇 2020年12月21日
        下一篇 2020年12月21日

        精彩推荐