2016-06-10 19 views
0

Mein Tag ist ein Link wie folgt:Wie zwei Aktionen in einem Tag eine Verknüpfung aufrufen?

<a href="<?php echo base_url().'dashboard' ?>" class="check_session">Home</a> 

Wenn klicken Link zu Hause, es Armaturenbrett nennen. Beim Anruf-Dashboard möchte ich die Sitzung überprüfen. Wenn eine Sitzung existiert, rufen Sie das Dashboard auf. Wenn der Session nein exist, logout

Mein JavaScript-Code ist wie folgt:

$(".check_session").click(function() { 
    $.ajax({ 
     url: base_url+"shared/check_session/"+Math.random()+new Date().getTime(), 
     success: function(response){  
      if(response == 'out') 
      { 
       alert('Please login'); 
       window.location.href = base_url + "logout"; 
      } 
     } 
    }); 
}); 

Mein Problem:

Wenn die Verbindung nach Hause geklickt haben, es keine Anrufkontroll Sitzung Funktion

Jede Lösung zu lösen mein Problem?

Vielen Dank

+0

Sie die PHP $ _SESSION global verwenden nicht wahr ist? Ich verstehe nicht, wie Sie Ihre Sitzungen speichern. Mit 'if (isset ($ _ SESSION))' -> wenn true, Dashboard einschließen, sonst Log-in Seite einschließen ... Sie können es alle Server-Seite beim Laden einer Ressource tun. –

Antwort

1

Sie benötigen einen Tag jede div ändern a haben event.preventDefault(), um das Standardverhalten von Anker zu stoppen:

Das Problem ist, dass, wenn Sie diesen Anker klicken, es zu der angegebenen href navigiert wird, so dass Ihr Ajax nie aufgerufen wird. Wenn Sie in diesem Fall ein Ereignis an die Anker gebunden haben, stellen Sie sicher, dass Sie das Standardverhalten mit event.preventDefault() stoppen.

Obwohl Math.random() nicht new Date().getTime() tun würde dies benötigt.

+0

Nach dem Ausführen der Klassenprüfung Sitzung, ruft es nicht Aktion: '

+0

It's working. Thank you very much –

0

Wenn u zum Handeln besser will

und JS

$(".check_session").click(function() { 
if(session = true) 
{ 
window.location.href = base_url + "dashboard"; 
} 
else 
{ 

    $.ajax({ 
     url: base_url+"shared/check_session/"+Math.random()+new Date().getTime(), 
     success: function(response){  
      if(response == 'out') 
      { 
       alert('Please login'); 
       window.location.href = base_url + "logout"; 
      } 
     } 
    }); 
} 
}); 

und Html

<div class="check_session"> class="check_session">Home</a> 
+1

Was ist 'Sitzung'? Und 'Sitzung = wahr '? Ich denke, dass diese Aussage immer als 'wahr' bewertet wird. – Rayon

0

hinzufügen preventDefault() in der ersten Zeile in der Funktion und fügen Sie einen anderen Zustand Armaturenbrett zu umleiten, wenn Sitzung

$(".check_session").click(function(e) { 
     var targeturl = $(this).attr('href'); 
     e.preventDefault(); 
    $.ajax({ 
     url: base_url+"shared/check_session/"+Math.random()+new Date().getTime(), 
     success: function(response){  
      if(response == 'out') 
      { 
       alert('Please login'); 
       window.location.href = base_url + "logout"; 
      }else{ 
        window.location.href = targeturl; 
      } 
    }); 
}); 
+0

I want like this : 'Home'. Weil es dinamyc href ist. Also in Javascript nur 'if', kein' else' –

+0

Siehe aktualisierte Antwort – Vinie

Verwandte Themen