2013-03-22 2 views
-2

Я хотел бы установить сеанс PHP без перезагрузки страницы, когда пользователь нажимает кнопку. В идеале, щелчок на кнопке немедленно скроет div с именем download_div и установит для сеанса «close_download» значение true.Выполнение PHP-сессии из JS-функции

Я понимаю, что 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 вызова использовать SESSION –

+1

когда-либо слышал о AJAX? – Class

+0

AJAX AJAX AJAX - ваш ответ. – coder101

ответ

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 calls, это самый быстрый способ.

в основном вы должны иметь другой файл PHP, который имеет это:

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

Затем в HTML/JS вы делаете что-то вроде $ .get ('newfile.php');

Вы не можете поместить PHP в вашем JavaScript, но с помощью Ajax вы можете 'смесь' их, как у сказал

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