从JS Function中执行PHP Session

时间:2013-03-22 07:01:31

标签: php javascript jquery jquery-mobile

我想在用户点击按钮时设置PHP会话而不重新加载页面。理想情况下,按钮单击会立即隐藏名为download_div的div,并将会话“close_download”设置为true。

我知道JS是用户端,PHP是服务器端,但我想知道是否有办法融合这两个世界。有任何想法吗?谢谢!

<html>
<head>
<script>
function closeDownload()
{
$('.download_div').hide()
}

<?php
session_start();
$_SESSION['close_download'] = "true";
?>

</script>

</head>
<body>
<a href="close_download.php" data-role="button" onClick="closeDownload()">Close</a>
</body>
</html>

3 个答案:

答案 0 :(得分:2)

session.php

<?php
session_start();
$_SESSION['close_download'] = "true";
?>

download.html

<html>
<head>
<script>
function closeDownload()
{
   $('.download_div').hide()
   $.get("session.php")   
}
</script>

</head>
<body>
<a href="close_download.php" data-role="button" onClick="closeDownload()">Close</a>
</body>
</html>

答案 1 :(得分:1)

你必须使用ajax,在jquery上读取文件ajax调用,是最快的方法。

基本上你必须有另一个php文件:

session_start();
$_SESSION['close_download'] = "true";

然后在你的html / js中你会做类似$ .get('newfile.php')的事情;

你不能把php放在你的javascript中,但是使用ajax你可以像你说的那样“混合”它们

答案 2 :(得分:1)

融合这两个世界的方法是 - AJAX

$.ajax({
  url: "session.php",
  data: {'name': 'test_session', 'value': 'foobar'}
}).done(function() {
     $('#notification').html('Done!');
});

session.php文件 -

<?php
    session_start();
    $name = $_POST['name'];
    $value = $_POST['value'];
    $_SESSION[$name] = $value;
?>