0

データベースからのデータを再利用して、フォームデータを ajax と php で保存しました。

ただし、これにアプローチする方法は異なります。データベースがないため、いくつかの洞察が得られます。

フォームデータをメールで送信しています。すべてのデータは単純なチェックボックスで、値は0または1です。ユーザーがページIDを更新すると、チェックされた値を保持したい.

データベースがなければ Cookie を使用する必要があると思います。Cookie を回避する唯一の方法は ajax とデータベースです (厳密には私の論理であり、真かどうかはわかりません)。

フォーム スニペット:

<input name="sharks" type="hidden" value="0">
<input name="sharks" type="checkbox" value="1" id="sharks" '.$VALUE ? ' checked="checked"' : ''.'>

その入力のphp部分は不安定です。値が0か1かを質問したいのですが、1の場合はチェックされ、0の場合は空です。

データベースから取得する方が簡単ですが、データベースがないため、Cookie が配置されると推測しています。

この最後の部分が不安定な場合は申し訳ありませんが、少し確信が持てず、どこを見ればよいかわかりません。

セッションの使用:

session_start();
if(isset($_POST['submit'])) {
   if(isset($_POST['personalization_result'])) {   
    $_SESSION['value'] = $_POST['personalization_result']; } 
   else {
    $_SESSION['value'] = '';  
   }
} 

<form action="<?php the_permalink(); ?>" method="post" id="question-form"> 

  <input type="hidden" name="submit" value="1">

       <?php 

             if ($_SESSION['value'] == 1) {
              $checked = 'checked="checked"'; } 

        ?>  

 <li>   
 <input name="personalization_result[memory_0]" type="hidden"   value="0">
 <input name="personalization_result[memory_0]" type="checkbox" value="1" id="personalization_result_memory_0" <?php $checked ?> >
 </li>

 <li>   
 <input name="personalization_result[memory_1]" type="hidden"   value="0">
 <input name="personalization_result[memory_1]" type="checkbox" value="1" id="personalization_result_memory_1" <?php $checked ?> >
 </li>

 <li>   
 <input name="personalization_result[memory_2]" type="hidden"   value="0">
 <input name="personalization_result[memory_2]" type="checkbox" value="1" id="personalization_result_memory_2" <?php $checked ?> >
 </li>
4

4 に答える 4

1

ローカル ストレージまたはセッション ストレージを使用します。これは、ページが更新されても保持されるクライアント側のメモリ ストレージの場所であり、html5 に統合されています。

これについての素晴らしいチュートリアルがあります:

http://www.w3schools.com/html/html5_webstorage.asp

于 2013-08-07T23:27:31.097 に答える