【问题标题】:pass sessionid through jquery ajax call to php通过 jquery ajax 调用将 sessionid 传递给 php
【发布时间】:2015-01-20 09:33:37
【问题描述】:

JS in (start.php)

$(document).ready(function()
{
    $('#btn_1').click(function(){
        $.ajax({
            type: "POST",
            url: "get_data.php",
            data: 'func=getData1',
            success: function(msg){
                $('#div_1').html(msg);
            }
        });
        $('#div_1').show();
    })
});

PHP (somename.php)

<?php
session_start();
if(trim($_POST['func']) == "getData1")
{ 
    echo "Test";
}
?>

如何通过我的 ajax 将 sessionid 从 start.php 传递到 get_data.php 文件? 以及如何将完整的 URL "url: "get_data.php" 传递给 js 文件,以便我可以切换应该从 ajax 调用的 php 文件?

【问题讨论】:

  • 您在这里似乎有两个完全不同的问题。对于stackoverflow,您不应该将它们合并在一起。一次只关注一个问题。也就是说,一个问题的答案似乎是“什么都不做”,而另一个不知道你在问什么。
  • 您可以将多个变量传递给 AJAX,例如数据:{func:getData1,url:google.com,session:id}

标签: php jquery html ajax


【解决方案1】:

Session ID 存储在 javascript 变量中并通过 ajax 调用发送,如下所示:

var session_id = '<?php echo session_id();?>';

完整的代码应该是:

var data = {func:'getData1',session_id:session_id};
$('#btn_1').click(function(){
    $.ajax({
        type: "POST",
        url: "get_data.php",
        data: data,
        success: function(msg){
            $('#div_1').html(msg);
        }
    });
    $('#div_1').show();
})

更新

如果要访问外部 js 文件中的 php 变量,请在包含 js 文件之前定义变量。喜欢:

<script type="text/javascript">
    var session_id = '<?php echo session_id();?>';
</script>
<script src="./ajax.js" type="text/javascript"></script>

【讨论】:

  • 谢谢,但 .js 文件中的 var session_id 为空。如果我在第一行之后提醒 var session_id,它会显示 ''
  • @user2976312 我忘了您使用的是外部JS 文件,请参阅更新后的答案。您可以像这样访问js文件中的变量。
【解决方案2】:
$(document).ready(function()
{
    $('#btn_1').click(function(){
        $.ajax({
            type: "POST",
            url: "get_data.php",
            data: {func:'fuc_name',session:'<?php echo session_id();?>'},
            success: function(msg){
                $('#div_1').html(msg);
            }
        });
        $('#div_1').show();
    })
});

【讨论】:

    【解决方案3】:
    var session_id = '<?php echo session_id();?>';
    $('#btn_1').click(function(){
        $.ajax({
            type: "POST",
            url: "get_data.php",
            data: {func:"getData1","session":session_id},
            success: function(msg){
                $('#div_1').html(msg);
            }
        });
        $('#div_1').show();
    })
    });
    

    【讨论】:

      【解决方案4】:

      使用 json 编码。通过使用 json,您可以将 php 数据传递给 js。如下更改代码。在会话开始后设置会话 ID。

      $(document).ready(function()`{    
          $('#btn_1').click(function(){ ` $.ajax({  `type: "POST",` dataType:"json", `url: "get_data.php,` data: 'func=getData1'`success: function(msg){ ` $('#div_1').html(msg.id); `}     
          });      
          $('#div_1').show();      
      })     
      

      });

      在 php 端使用 json 编码回显变量。 echo json_encode($id);`

      【讨论】:

        【解决方案5】:

        使用 json 编码。通过使用 json,您可以将 php 数据传递给 js。如下更改代码。在会话开始后设置会话 ID。

        $(document).ready(function()
         '{    
            $('#btn_1').click(function(){ `
        $.ajax({
        type: "POST",`
        dataType:"json", `url: "get_data.php,` 
        data: {func:'enter the data you want to pass'},
        success: function(msg){ 
                $('#div_1').html(msg.id); 
           }     
            });      
                $('#div_1').show();      
        })     
        

        });

        在 php 端使用 json 编码回显变量。 echo json_encode($id);`

        【讨论】:

          猜你喜欢
          • 2015-04-28
          • 1970-01-01
          • 1970-01-01
          • 2019-06-18
          • 1970-01-01
          • 2018-06-24
          • 1970-01-01
          • 1970-01-01
          • 2012-06-25
          相关资源
          最近更新 更多