내 웹 사이트에 "즐겨 찾기"기능을 구현하려고합니다.
사용자는 로그인없이 전체 웹 사이트를 방문 할 수 있지만 일부 결과 중 자신이 좋아하는 것을 표시하려면 로그인해야합니다.
내가 좋아하는 기능에 추가의 로그인으로 분명합니다. 이제 유일한 문제는 사용자가 웹 사이트에 접속할 때 로그인 할 필요가 없다고 말했듯이 "즐겨 찾기에 추가"버튼을 클릭하면 로그인을 확인해야한다는 것입니다. 상태 (처음에 로그인하지 않은 것을 알고 있습니다) 소셜 로그인과 함께 부트 스트랩 모달이 나타납니다 (실제 문제).
그렇다면 그가 로그인하지 않은 경우 어떻게 로그인 페이지를 모달로 표시 할 수 있습니까?
내 코드는 다음과 같습니다.
<button class='btn btn-sm btn-info favourite_feature' value="<?php echo $id;?>">favourite</button>
$(document).ready(function()
{
$(".favourite_feature").click(function(){
var _this = $(this);
var postid = _this.val();
$.ajax({
type : 'POST',
url : '/add_favourite.php',
dataType : 'json',
data : '$postid='+ postid,
});
});
});
기본적으로 "즐겨 찾기에 추가"작업에 대한 요청을받을 때 사용자가 로그인했는지 여부를 확인하는 것은 백엔드의 책임입니다.
JS가 서버에 데이터를 게시하면 그에 따라 응답해야합니다 (작업의 성공 여부 및 문제).
사용자가 로그인하지 않았을 때 백엔드 "즐겨 찾기에 추가"작업이이 json으로 응답한다고 가정합니다.
{
"success" : 0,
"error_type" : "login"
}
... 그리고이 json 작업이 오류없이 수행되었을 때 :
{
"success" : 1
}
이렇게하면 서버가 JavaScript에 사용자가 로그인해야 함을 알립니다. 그런 다음 그에 따라 위의 응답을 처리 할 수 있습니다 (내 예에서는 id loginModal
가있는 요소 가 표시 할 모달입니다).
$(document).ready(function()
{
$(".favourite_feature").click(function(){
var _this = $(this);
var postid = _this.val();
$.ajax({
type : 'POST',
url : '/add_favourite.php',
dataType : 'json',
data : '$postid='+ postid,
success : function(response) {
if (response.success) {
// if add to favourite succeeded
}
else {
// handle errors
if (response.error_type == 'login') {
// if user should log in - show modal (example jQuery)
$('#loginModal').modal('show');
}
}
}
});
});
});
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다