2013-06-17 2 views
0

Я пытаюсь создать простую систему входа в систему - я дошел до того, что мой пользователь смог войти в систему и посмотреть его страницу профиля. Я пытаюсь сделать ссылку работу в шаблоне login_success.php ... прямо сейчас он просто добавляет «#» в URL (потому что я использую, что в качестве держателя местопростая система входа в систему spa/php/mysql/jquery

Вот мой код:.

JS/application.js

$(document).ready(function() { 
    $("#main").load("templates/indexforms.php", function() { 
     $("#login").submit(function(e) { 
      e.preventDefault(); 
      $.post("checklogin.php", $(this).serialize(), function() { 
       $("#main").load("templates/login_success.php"); 
       $("#login").remove(); 
       $("#register").remove(); 
      }); 
     }); 

     $("#register").submit(function(e) { 
      e.preventDefault(); 
      $.post("checkreglogin.php", $(this).serialize(), function(){ 
       $("#main").load("templates/login_success.php"); 
       $("#login").remove(); 
       $("#register").remove(); 
      }); 
     }); 
    }); 


    $("#loginlinkdiv a").click(function(event) { 
     event.preventDefault(); 
     $("#main").empty(); 
     $("#main").load("templates/logout.php"); 
    }); 

    $("#logoutlinkdiv a").click(function(event) { 
     event.preventDefault(); 
     $("#main").empty(); 
     $("#main").load("templates/indexforms.php"); 
    }); 
}); 

шаблоны/login_success.php

<?php 
session_start(); 

if($_SESSION['username'] === null){ 
    header("location: ../index.php"); 
} 
?> 

<h1>Login Successful</h1> 
<h2>Username: <? echo $_SESSION['username']?></h2> 
<div id="logoutlinkdiv" > 
    <a href = "#" >Log out</a> 
</div> 

Я не могу понять, почему ничего не происходит, когда я нажимаю бревно из ссылки.

+0

Он должен работать. Попробуйте разместить JS в нижней части страницы, а не сверху. Попробуйте поместить предупреждение («привет») в div logout, чтобы увидеть, не падает ли ваш indexforms.php при вызове с этой страницы. –

+0

Если страница/контент (login_sucess) загружается через ajax -> возможно, скрипт не распознает его как часть DOM, поэтому попробуйте использовать на: http://api.jquery.com/on/ – sinisake

+0

@MrJack Я сделал как вы сказали ... ничего не происходит ... даже с кодом внизу ... я помещаю alert (hi) в div div для выхода из системы и он отображается в браузере правильно. – ewizard

ответ

1

Я думаю, что это должно работать:

$(document).on("click", "#logoutlinkdiv a", function(e) { 
e.preventDefault(); 
    alert('logout button clicked'); 
}); 

И объяснение: http://bugs.jquery.com/ticket/11203

+0

Якорь '# main' вместо документа. –

+0

@nevermind сделал это ... спасибо - Почему это работает, а не наоборот? – ewizard

+0

Пожалуйста, проверьте это (более подробное объяснение, чем в предыдущей ссылке, которую я отправил): http://stackoverflow.com/questions/8110934/direct-vs-delegated-jquery-on/ 8111096 # 8111096. – sinisake

Смежные вопросы