dongzhu6900 2013-05-27 01:26
浏览 53
已采纳

jQuery外部函数需要一些PHP值

In my external JavaScript file, I have the following jQuery code:

$(function(){
    $('#follow').on('click',function(){
        $.ajax({
            type: 'POST',
            url : 'functions/follow.php',
            data: {follower : session_id,
                   user : p_id,
            success: function(result) {
                if(result == 'followed'){
                    $('#follow').attr('id','unfollow').text('-Unfollow');
                }
            }
        });
    });
});

On my normal page, I have this:

var session_id = '<?php echo $_SESSION['id']; ?>',
    p_id = '<?php echo $p_id; ?>';

but this is not passing the variables into the jQuery function. I have these two variables being set before the JavaScript file is being called, also.

EDIT: I have tested this with the function on the same page as where the button is, and I passed in the PHP values with an echo, and it worked then.

  • 写回答

1条回答 默认 最新

  • duankuang7928 2013-05-27 01:45
    关注

    You can create a namespace in the jquery object allowing access to it even inside events. Like so:

    $.mynamespace = { 
        session_id: '<?php echo $_SESSION['id']; ?>',
        p_id: '<?php echo $p_id; ?>'
    };
    

    Then reference those namespace vars in your code like so:

    $(function(){
        $('#follow').on('click',function(){
            $.ajax({
                type: 'POST',
                url : 'functions/follow.php',
                data: {follower : $.mynamespace.session_id,
                       user : $.mynamespace.p_id,
                success: function(result) {
                    if(result == 'followed'){
                        $('#follow').attr('id','unfollow').text('-Unfollow');
                    }
                }
            });
        });
    });
    

    This will also make them available for any other jQuery events/callbacks etc

    (NB: Make sure your variables are being set before you try to use them, i.e. higher in the script)

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 求螺旋焊缝的图像处理
  • ¥15 blast算法(相关搜索:数据库)
  • ¥15 请问有人会紧聚焦相关的matlab知识嘛?
  • ¥15 网络通信安全解决方案
  • ¥50 yalmip+Gurobi
  • ¥20 win10修改放大文本以及缩放与布局后蓝屏无法正常进入桌面
  • ¥15 itunes恢复数据最后一步发生错误
  • ¥15 关于#windows#的问题:2024年5月15日的win11更新后资源管理器没有地址栏了顶部的地址栏和文件搜索都消失了
  • ¥100 H5网页如何调用微信扫一扫功能?
  • ¥15 讲解电路图,付费求解