2016-10-24 191 views
0

私はローカルストレージアレイにフォームデータを格納しています。その配列をajaxでphpページに送信したいだけでなく、PHPページのデータにもアクセスしたいと思います。ajaxを使用してローカルストレージデータをPHPページに送信する方法は?

var myvalue=document.getElementById('name').value;   
        var favorites_str = localStorage.getItem('my_favorites');  
        if(favorites_str == null) {  
        favorites = [];  
        favorites.push({ "name":myvalue});  
        }  
     else{  
        favorites = JSON.parse(favorites_str);  
        favorites.push({ "name":myvalue});  
        } 
      localStorage.setItem('my_favorites',JSON.stringify(favorites));  
    var data = localStorage.getItem('my_favorites');  
        if(data == null){  
        alert("0 favorites");  
        }else{  
        favorites = JSON.parse(data);  
        $.each(favorites, function(index,item){  
        var my_items=item.name;   
        })  
        };  
if(navigator.onLine)  
       { 
        $.ajax({ 
         url:'http://localhost/offline/nextpage.php', 
         type:'post', 
         data:{my_items:my_items}, 
         success:function(data) 
         { 
          $('#result').html(data); 
         } 
        }); 
       } 

おかげ -
は、ここに私のコードです。

+0

私のコードを編集しました。私はajaxコードを追加することを忘れていました。 – Deepak

+0

JSON配列を文字列に変換してPHPに送り、 'json_decode()'を使って読み込むのはなぜですか? –

答えて

0

キー名「name」のローカルストレージにデータを格納したとします。これを以下のように取得し、ajax呼び出しに送信できます。私はあなたのコード内で見ることができます

data: {name: localStorage.getItem('name')} 
+0

質問にどのように答えたかわかりません –

+0

私は彼がajax呼び出しでデータを渡す方法を知っています。 –

0

問題は、Ajaxのリクエストで変数(my_items)を送信しようとしているということですが、変数が別のスコープで定義されています。

は、代わりにこれを試してみてください:

var myvalue=document.getElementById('name').value; 
... 
favorites = JSON.parse(data); 
var my_items = []; 
$.each(favorites, function(index,item){ 
    my_items.push(item.name); 
}); 

if(navigator.onLine) { 
    $.ajax({ 
     url:'http://localhost/offline/nextpage.php', 
     type:'post', 
     data:{my_items:my_items}, 
     success:function(data) 
     { 
      $('#result').html(data); 
     } 
    }); 
} 

は今my_itemsオブジェクトは、Ajaxリクエストの内部にアクセスできるようになるだろう。

関連する問題