如何在jQuery中使用php会话?
问题描述:
我面临着这样的问题:我曾在一个网站的每一个意见,以button report
让群众举报评论。我想如果有人点击按钮将被重定向到弹出窗口让人们登录或注册。我想在登录/注册完成后这个请求(count)被发送到数据库。如何在jQuery中使用php会话?
我的问题是我怎么能执行此jQuery代码中:
if(isset($_SESSION['session_user'])) { /*do something*/ }.
这里是什么,我已经做了代码:
return this.each(function (i) {
var count = 0;
$(this).append("<button class='" + parametres.button + " report" + i + "''><span class='glyphicon glyphicon-alert'> </span>" + parametres.textBtn + "</button>").on('click', function() {
// if ("<%php !$_SESSION['user_session'] %>") {
// Popup window
$('#myModal').modal('show');
// pane register
$('.btnReg').on('click', function() {
$.ajax({
url: 'includes/register.php',
data: {name: $('#nameReg').val(), email: $('#emailReg').val(), password: $('#passwordReg').val()},
type: 'POST',
beforeSend: function() {
//$('#error').fadeOut();
$("#error").html('<div class="alert alert-info"> <span class="glyphicon glyphicon-transfer">Envoi en Cours ...</span></div>');
},
success: function (data) {
if (data == 'exist') {
$("#error").html('<div class="alert alert-danger"> <span class="glyphicon glyphicon-info-sign"></span>Ce mail n\'est pas disponible !</div>');
} else if (data == 'success') {
$("#error").html('<div class="alert alert-success"> <span class="glyphicon glyphicon-info-sign"></span>Inscripton effectuée !</div>');
} else {
$("#error").fadeIn(1000, function() {
$("#error").html('<div class="alert alert-danger"><span class="glyphicon glyphicon-info-sign"></span>' + data + ' !</div>');
});
}
}
});
});
// pane login
$('.btnLog').on('click', function (elem, i) {
//event.preventDefault();
$.ajax({
url: 'includes/login.php',
data: {email: $('#emailLog').val(), password: $('#passwordLog').val()},
type: 'POST',
success: function (data) {
if (data == 'success') {
$("#error").html('<div class="alert alert-info"> <span class="glyphicon glyphicon-transfer">Connexion en Cours...</span></div>');
setTimeout(' window.location.href = "index.php"; ', 4000);
} else { //alert(data);
$("#error").fadeIn(1000, function() {
$("#error").html('<div class="alert alert-danger"> <span class="glyphicon glyphicon-info-sign"></span>' + data + ' !</div>');
});
}
}
});
});
//}
//This is the thing to be done after login, where to put it ?
count = count + 1;
if (count >= parametres.juge) {
var content = $(this).text();
var click = count;
var tag = "<button class='" + parametres.button + " report" + i + "''>" + parametres.textBtn + "</button>";
$.ajax({
url: 'includes/controller.php',
data: {content: content,
click: click,
tag: tag},
type: 'POST',
success: function (data) {
if (!data.error) {
//alert(data);
alert('Success!');
}
}
});
$(this).animate({'opacity': 0}, 1000, function() {
$(this).text(parametres.textReplace).css('color', parametres.colorTex);
}).animate({'opacity': 1}, 1000);
}
});
});
答
您可以使用PHP来确定用户是否登录,如果它们打印自己的身份证到一个隐藏的输入变量。
<?php isset($_SESSION['session_user']): ?>
<input type="hidden" id="session_user_id" value="<?php echo $_SESSION['session_user_id']; ?>">
<?php endif; ?>
然后在JS当你需要的ID,你可以使用jQuery找到它:
var session_user_id = $('#session_user_id').val();
答
你试过这样
if(<?php isset($_SESSION['session_user']) ?>) { do something }。
让我带你到你的答案 - 你为什么在这个代码片段使用AJAX? (提示:jquery无法运行php,因此它必须通过ajax与服务器上的php进行通信)。 – WEBjuju
我使用Ajax发送一些数据到登录/注册/控制器的PHP页面,我插入/更新数据库,如一个按钮被点击了多少次。按钮的点击次数达到20位的评论自动隐藏。 – toto
对,但你不会尝试将controller.php代码放入jquery中。以同样的方式,你需要使用JavaScript来AJAX来你的PHP中的调用来问,如果用户登录 - 那么php可以使用if(isset($ _ SESSION [“SESSION_USER”])){做某事}到发回一个json_encoded消息,告诉javascript该用户是否已登录以及该怎么做。 – WEBjuju