-2

我想在用户单击按钮时设置 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>
4

3 回答 3

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>
于 2013-03-22T07:08:12.743 回答
1

你必须使用ajax,阅读关于jquery ajax calls 的文档,是最快的方法。

基本上你必须有另一个包含这个的 php 文件:

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

然后在您的 html/js 中执行类似 $.get('newfile.php'); 的操作

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

于 2013-03-22T07:06:42.520 回答
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;
?>
于 2013-03-22T07:09:33.377 回答