2017-01-31 5 views
2

Ich habe 3 Seite mein Problem fehlt Sitzungsdaten nach Ajax Anfrage, ich habe ein einfaches Formular wie unter Code, wenn ich nicht auf Button1, und senden Formular klicken mein Code funktioniert gut und ich kann bekommen Session-Werte in Pages3, aber wenn klicken Knopf1 und Anfrage Ajax, Sitzungsdaten fehlen in Seite3 bitte helfen, was ich mache? Dankfehlende Sitzungsdaten nach Ajax Anfrage

page1.php Code

<?php 
    session_start(); 
    if(isset($_POST['firstname'])){ 
     $_SESSION['firstname']= $_POST['firstname']; 
    } 
    if(isset($_POST['lastname'])){ 
     $_SESSION['lastname']= $_POST['lastname']; 
    } 
?> 
<form id="form1" action="page3.php"> 
    First name:<br> 
    <input type="text" id="firstname" name="firstname" value=""> 
    <br> 
    Last name:<br> 
    <input type="text" id="lastname" name="lastname" value=""> 
    <br><br> 
    <input type="submit" value="Submit"> 
    <br><br> 
    <input type="button" id="button1" value="save"> 
</form> 

<script type="text/javascript"> 
$(document).ready(function(){ 

    $('#button1').on("click",function(){ 

     jQuery.ajax({ 
       type: "POST", 
       data: $('#form1').serialize(), 
       url:page2.php, 
       dataType : 'json', 
       encode : true, 
       success: function(data){ 
       console.log(data); 
       } 
     }); 
    }); 
}); 
</script> 

page2.php Code

<?php 
    session_start(); 
    $firstname=$_POST['firstname']; 
    $lastname=$_POST['lastname']; 

    //some code here 
?> 

page3.php Code

<?php 
    session_start(); 
    $firstname=$_SESSION['firstname']; 
    $lastname=$_SESSION['lastname']; 

    //some code here 
?> 
+0

, wenn Sie durch jquery tun dann Sie haben um dies in page2.php zu schreiben: -'if (isset ($ _ POST ['Vorname'])) { $ Vorname = $ _ POST ['Vorname']; $ _SESSION ['Vorname'] = $ Vorname; } if (isset ($ _ POST ['Nachname'])) { $ lastname = $ _ POST ['lastname']; $ _SESSION ['Nachname'] = $ Nachname; } ' –

Antwort

2

Das Problem ist, wenn man es durch jquery tun, Ihre page1 wird nicht aktualisiert und deshalb SESSION Das Speichern von Code auf der Oberseite der Seite wird nicht ausgeführt und Sie erhalten keine Werte auf anderen Seiten.

Lösung: -

Bei Ajax auf page2.php Schreib wie unten (entferne sie aus dem page1): -

if(isset($_POST['firstname'])){ 
    $firstname=$_POST['firstname']; 
    $_SESSION['firstname']=$firstname; 
} if(isset($_POST['lastname'])){ 
    $lastname=$_POST['lastname']; 
    $_SESSION['lastname']= $lastname; 
} 

Bei Formular POST alles hat gut funktioniert, weil der Code auf von page1 wird ausgeführt.

Aber die richtige Sache ist in diesem Fall auch Code auf die page1 entfernen und es auf page3.php (gleichen Code, was ich oben erwähnt habe)

+1

Vielen Dank diese Lösung mein Problem behoben – role1