2013-03-22 113 views
-2

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

据我所知,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> 
+2

使用Ajax调用使用会话 – 2013-03-22 07:02:49

+1

听说过阿贾克斯? – Class 2013-03-22 07:02:51

+0

AJAX AJAX AJAX是你的答案。 – coder101 2013-03-22 07:06:51

回答

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

你必须使用AJAX,阅读jQuery的AJAX调用的文件,是最快的方法。

基本上你必须有具有此另一个PHP文件:在您的HTML

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

然后/ JS你做类似$获得( 'newfile.php');

你不能把PHP在JavaScript,但使用AJAX,你可以 '混合' 他们为u说

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; 
?>