2016-08-15 35 views
0

JQuery Get Daten werden über Anker-Tag nach Klick-Ereignis gesendet. Sie gibt Daten zurück, um die Tag-Seite korrekt zu verankern, aber wenn die Seite umgeleitet wird, werden keine Daten an diese Seite zurückgegeben.

Es gibt den Anker-Tag-Code. Es wird dynamisch generiert. Nach dem Klicken dieses Anchor-Tags sendet Jquery Daten an LikeMail.php Seite. die dann kehrt Seite (viewProfile.php) durch ajax Methode, mit derJquery Get Daten werden nicht auf umgeleiteter Seite zurückgegeben?

<a class="profile" href="<?php echo "viewProfile.php?id=" . $record['user_id'];?>" > 
        <img class="img-rounded" 
         src=" <?php echo "../shadi/images/" . $record['user_photo1'] ?>" 
         id="<?php echo $record['user_id']; ?>"alt="" width="70%" height="20%"> 

       </a> 


Dies ist Jquery Methode umgeleiteten Daten sendet, indem Methode get

$(document).ready(function() { 
$('.profile').on('click', function (e) { 

    //Get the href Link 
    var href = $(this).attr('href'); 

    e.preventDefault(); 
    $.get("LikeMail.php", 
     {user2: $(this).find(".img-rounded").attr("id")}, function (returnedData) { 

      // Do whatever you want with returend data 
      console.log(returnedData); 

     }).done(function() { 
     window.location.href = href; 
    }); 
    }); 

}); 


Dies ist ajax Funktion, die empfängt Daten in umgeleiteter Seite

function like() 
{ 
    var req = new XMLHttpRequest(); 
    req.onreadystatechange = function() 

    { 
     if(req.readyState==4 && req.status==200) 
     { 
      document.getElementById('Like').innerHTML=req.responseText; 

     } 
    } 
    req.open('GET','LikeMail.php','true'); 
    req.send(); 
} 
setInterval(function(){like()},1000); 

Ich möchte wissen, warum meine jQuery Daten abrufen, Anker-Tag-Seite zurückkehren, aber warum nicht auf umgeleitete Seite. Ich möchte es auf Umleiten Seite

+0

mit 'window.location.href = href;' aktualisieren Sie die Seite und somit sind die GET-Daten, nach denen Sie suchen, nicht mehr verfügbar. – KFE

+0

Dann, wie Daten mit Anchor-Tag senden? –

+0

Ich habe auch 'e.preventDefault();' –

Antwort

0

arbeiten Ihre Daten werden nicht auf der nächsten Seite nach Umleitung bestehen. Sie können die Daten in der Sitzung speichern, die sie dann auf der anderen Seite zur Verfügung stellt.

Speichern Sie in Ihrem PHP-Skript, das die Daten auf der ersten Seite empfängt, die Daten, die Sie in der Sitzung behalten möchten. Here is a tutorial about sessions wenn Sie nicht wissen, wie das geht.

Jetzt auf der anderen Seite müssen Sie nur die Sitzungsdaten lesen, die gespeichert wurden. Sieht so aus, als könnte man das wahrscheinlich nur beim Laden der Seite mit PHP machen.

Wenn Sie einen weiteren Ajax-Anruf initiieren möchten, um die Sitzungsdaten zu erhalten (ich bin nicht sicher, warum Sie das tun wollen, scheint es keine gute Lösung für irgendetwas zu sein, was ich denken kann) Ihre Ajax-Anfrage an ein PHP-Skript, das das $_SESSION Array zurückgibt, das Sie auf der vorherigen Seite festgelegt haben.

+0

Ja, ich kenne diese Lösung, aber das Hauptproblem ist, dass Sitzungen im gesamten Skript eindeutig sind. Wenn der Benutzer eine andere Registerkarte öffnet, wird das Problem erzeugt –

+0

@ZainFarooq Sitzungen existieren über die aktuelle Anfrage hinaus. Das ist der springende Punkt. Die Sitzung sollte auch in einem neuen Tab noch vorhanden sein. Wenn nicht, ist dies ein Problem mit der Art und Weise, wie Sie Sitzungen oder Ihre Serverkonfiguration erstellen. – BadHorsie

+0

@ZainFarooq Wie auch immer, wenn Sie möchten, dass die Daten nach der Weiterleitung noch vorhanden sind, können Sie die Daten nur speichern - normalerweise die Sitzung oder eine Datenbank. – BadHorsie

Verwandte Themen