0

選択できるdivの配列があります(クリック時に背景色を変更して、ユーザーにそれを示します)。

これらすべての div の ID をアプリに送信する方法が必要ですが、これを行う「良い」方法は見当たりません。現時点で確認できる唯一のことは、onclick が ID を取得して POST でサーバーに送り返す JavaScript 関数をトリガーするボタンを持つことです。

チェックボックスや複数選択リストの代わりにdivを使用するフォームで複数選択入力を作成する方法、または私が試みていることを行うより良い方法はありますか?

4

3 に答える 3

0

これはアプリなので、JQuery JavaScript ライブラリを使用してすべてを HTML5 ローカル ストレージに保存することができます。

これを段階的に行う方法は次のとおりです。

  1. jquery 配列を作成する
  2. クリックすると、div id を取得し、キーと値のペアを使用して配列に格納します
  3. もう一度クリックすると、配列から削除されます
  4. 配列の値をローカルストレージに保存するための「送信」ボタンのようなイベントリスナーがあります

これは私が持っていたjsfiddleで、あなたが話していることとまったく同じです: http://jsfiddle.net/CR47/bqfXN/1/

もう少し詳しく説明しますが、jquery はまさに必要なものであるはずです。

これが POST または ajax を使用して送信するよりも優れている理由は、これがアプリであると言うので、この方法をオフラインで使用できるためです。post または ajax では、php を実行しているサーバーへの接続が必要になります。

var skinCare=[];                                       //the array
$('.skinCare').click(function(){                       //onclick
    var value = event.target.className.split(" ")[0];  //get classname, you would get id
    var index = skinCare.indexOf(value);               //gets where the location in 
                                                       //the array this code is
    if($(this).hasClass('selected')){                  //when a div is clicked it gets
        //$('.skinCare').removeClass('selected');      //the class "selected" and adds
        skinCare.splice(index, 1);                     //to array, then another click
    } else if($.inArray(value, skinCare) == -1){       //removes it from array
        skinCare.push(value);
    }
});
$('.submitbutton').click(function(){
    localStorage.setItem('Skin Care', JSON.stringify(skinCare));

});
于 2013-06-14T12:05:14.233 に答える