2015-03-03 91 views
2

我正在爲用戶創建配置文件頁面。我有兩個html頁面:page1:login.htmlpage2:profile.html。從一個頁面:1我們登錄,成功登錄後,它將重定向到userProfile頁面:2。我從第1頁到 2頁發送用戶信息,如姓名,地址,手機號碼,電子郵件,身份證等,以JSON的形式,如何將JSON數據數組從一個html頁面傳遞到其他html頁面?

我想用sesstion,而不是localStorage的

JSON格式是

[{"userInfo":{"id":"1","username":"nee","Name":"Neelabh", "address":"Bangalore","Email":"[email protected]"}}] 

我用的幫助這個參考:JqueryMobile (JQM), Json and passing data to a new page

的JavaScript中的登錄頁面:

<script type="text/javascript">  
    $(document).ready(function(){  
       var userData = { 
       storeUserDataInSession: function(userData) { 
        var userObjectString = JSON.stringify(userData);       
       window.sessionStorage.setItem('userObject',userObjectString) 
       }, 
       getUserDataFromSession: function() { 
        var userData = window.sessionStorage.getItem('userObject') 
        return JSON.parse(userData); 
       } 
       } 

       $("#register-form-header").submit(function(){    

       var uName = $('#userName').val();    
       var upassd=$('#password').val();    

       $.ajax({           
        url:"http://localhost/login/login.php",      
        type:"POST", 
        dataType:"json", 
        data:{type:"login",uName:uName,password:upassd},      

        ContentType:"application/json", 
        success: function(response){  
         $.each(response, function(index,value){       


         }); 
         //alert(JSON.stringify(response[0])); 

       userData.storeUserDataInSession(response); 

         window.location = 'userProfile.html'; 
         return false;         
        }, 
        error: function(err){       
         //alert(JSON.stringify(err)); 
         alert("fail"); 
         window.location.href = 'error.html'; 
        }   
       }); 
       return false; 

     }); 
     //loadJSON(0); 
    }); 
</script> 

在個人資料頁中的JavaScript

<script> 

    $(document).ready(function() { 
     var userData = { 
     storeUserDataInSession: function(userData) { 
      var userObjectString = JSON.stringify(userData); 
      window.sessionStorage.setItem('userObject',userObjectString) 
     }, 
     getUserDataFromSession: function() { 
      var userData = window.sessionStorage.getItem('userObject') 
      return JSON.parse(userData); 
     } 
     } 

     var userDataObject=userData.getUserDataFromSession(); 
     var data=userDataObject[0].userInfo.username;   
     alert(data);    
    }); 
</script> 

該資料頁的成功完全能夠打印HardcodedInfo 「Neelabh」,我不知道如何發送JSON數據到其他頁面,請檢查我提到的Json數據列表,

PHP代碼

$result=mysql_query($query); 
      $totalRows=mysql_num_rows($result); 
      if($totalRows>0){ 
       $recipes=array(); 
       while($recipe=mysql_fetch_array($result, MYSQL_ASSOC)){ 
        $recipes[]=array('userInfo'=>$recipe); 
       } 
       echo json_encode($recipes);   
      } 

上面的代碼是工作代碼感謝Mateusz馬耶夫斯基

+0

如果您希望移動設備上的瀏覽器保持一致,您將不得不使用cookie傳遞數據。 Safari的隱私瀏覽模式不支持本地/ SessionStorage。 – denisol 2015-03-03 12:13:44

+0

@denisol,你能告訴我更多關於它的信息嗎? – geeks 2015-03-03 12:16:00

回答

2
var userData = { 
storeUserDataInSession: function(userData) { 
    var userObjectString = JSON.stringify(userData); 
    window.sessionStorage.setItem('userObject',userObjectString) 
}, 
getUserDataFromSession: function() { 
    var userData = window.sessionStorage.getItem('userObject') 
    return JSON.parse(userData); 
} 
} 

然後在你的成功()回調你做

userData.storeUserDataInSession(response); 

檢索數據你跑

userData.getUserDataFromSession() 
+0

我在哪裏定義這個函數,var userData = { storeUserDataInSession:function(userData){ var userObjectString = JSON.stringify(userData); window.sessionStorage.setItem( 'userObject',userObjectString) }, getUserDataFromSession:函數(){ VAR的UserData = window.sessionStorage.getItem( 'userObject') 返回JSON.parse(用戶數據); } } – geeks 2015-03-03 12:41:08

+0

@neelabhsingh你可以在$(document).ready(function()block中做到,但沒關係,它可以在任何地方訪問 – 2015-03-03 12:41:51

+0

請檢查我們必須在userData中使用response [0] .storeUserDataInSession(JSON.stringify(response [0]));我還有一個問題如何在userprofile頁面中獲取單獨的數據,名稱,電子郵件,移動設備.. – geeks 2015-03-03 13:35:49

相關問題