2013-03-22 112 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; 
?>