2017-06-12 11 views
1

私は、ユーザーがデータベースからさまざまなオプションを選択できるWebサイトを持っています。私は動物のデータベースを持っていると言います。そして、ユーザーは異なる動物を選ぶことができます。私はデータを取得するためにAJAXを使用しているので、私のページは新しい見出しごとにリロードされません。簡単な方法でデータを保存して削除する

したがって、ユーザーは見出しの下に動物を見つけ、チェックボックスをオンにして「子猫」を選択します。ユーザーが検索を続け、「Cute Animals」という見出しの下に「Kittens」がもう一度表示されます。その後、ユーザーが以前にチェックしたので、「子猫」をチェックする必要があります。多くの見出しと異なる動物を検索した後、ユーザーはそれを提出することができます。

私の質問はどうすればいいですか?私は入力の各動物のすべてのIDを追加することを考えていた。この<Input type="hidden" value="1,4,7,14,34,192">のように、しかし、ユーザーがそれをしたい場合は、要素を削除して問題を実現しました。

これを行う方法は他にありますか?

EDIT(明確化): 私はajaxを使用してデータベースからレコードを取得しています。そしてデータベースは、何千もの動物の列で構成されています。私はAjaxリクエストをパラメータとともに送信しています。かわいそう= 1 &色=茶色&野生= 1 &菜食主義= 1など。パラメタに応じて、適切な動物をプリントアウトします。それが新しい動物をプリントアウトするとき、あなたがもう1回動物が来ることを経験するかもしれません(私が最初にそれを選んだとしても)、それが選択された選択肢でなければなりません。

「かわいい動物」の下で「子猫」を選択し、「茶色」の新しい検索を行い、もう一度子猫が来たら、それを選択する必要があります。

+0

[angularjs](https://angularjs.org/)のように、データバインディングをサポートしているフレームワークに見て考えてみましょう – Danny

+0

UXの観点から、あなたはすべて表示する方法をすることができユーザーが送信している内容を正確に把握できるようにチェックされたオプションです。そのような形式でもデータを格納することができます。 – fqhv

+0

@fqhvはい、私は本当にすべてのチェックされたオプションを表示したいと思います、そのようなフォームはどのようにデータを格納する責任がありますか?あなたは普通のHTMLフォームを考えていますか? – William82

答えて

0

https://www.w3schools.com/html/html5_webstorage.aspが、私は方法を見つけた: すべての動物/チェックボックスは、IDを持っているのlocalStorage(またはのsessionStorage)の完全なドキュメントについては

はこちらをご覧ください。オプションを選択すると、関数addanimal(id)が呼び出されます。次に、隠された入力の中に数値を書き込みます。 選択が解除されると、番号が ''に置き換えられます。

function addanimal(id){ 

if (document.getElementById("animal" + id).checked){ 
    document.getElementById("selectedanimal").value = document.getElementById("selectedanimal").value + " " + id + ", "; 

} else { 
    document.getElementById("selectedanimal").value = document.getElementById("selectedanimal").value.replace(' ' + id + ',', '') 
} 

}

-1

私はあなたの質問を正しく得ることができません。おそらく情報をlocalStorageに保存することができます。

+0

AJAX経由で更新されたページはすべて1ページになっているので、localStorageを使用する必要はありません.js変数で選択を維持できます。 –

+0

ページをリロードした場合、ローカルストレージではなくJSで – aorfevre

+0

あなたは正しいですが、OPは具体的には_「私はAJAXを使用してデータを取得していますので、私のページはリロードしません** headline "_とlocalStorageを使用すると、前回の訪問後にユーザーがページに新しく到着した場合にプログラムを作成する必要があります。また、localStorageから古い選択項目を削除する必要があります。今、あなたが過去の選択を覚えていれば、私はlocalStorageが行く方法であることに同意します。 (脇に:それは "ルーズ"でない "失う") –

関連する問題