-1

ドロップダウンメニューのCookieをhtmlフォームに設定したいのですが、ページを更新すると、ドロップダウンボックスのCookieに保存されている値を取得する必要があります。入力ボックスのコードを次のように記述しました。

<script type="text/javascript">
 function setCookie(c_name,value,exdays)
{

var exdate=new Date();
exdate.setDate(exdate.getDate() + exdays);
var c_value=escape(value) + ((exdays==null) ? "" : "; expires="+exdate.toUTCString());
document.cookie=c_name + "=" + c_value;
}
</script>

<input name="order_num" type="text" size="10" value="<?php if(isset($_COOKIE["order_num"])) echo $_COOKIE["order_num"];?>" onblur="setCookie(this.name,this.value,60*60*2)" />

同様の方法で、ドロップダウンボックスのCookieを作成します。ドロップダウンメニューのコードは次のとおりです。

<select name="quality" onChange="setCookie('quality',this.value,60*60*2)" selected="" >
<option >Select One</option>  
<option value="good" selected="good">Good</option>
<option value="ok" selected="ok">A bit low but we can use it</option>
...

</select>

<input type="checkbox" name="proceed_opt[]" value="I will upload new Image" onblur="setCookie(this.name,this.value,60*60*2);>
         Insert Option &quot;I will upload new Image&quot;</td></tr>


         <input type="checkbox" name="proceed_opt[]" value="I approve this sample for a Night Light" onblur="setCookie(this.name,this.value,60*60*2);>
         Insert Option &quot;<font face="Arial, Helvetica, sans-serif" size="2">I approve this sample for a Night Light</font>&quot; 

誰かが私がクッキーを設定するのを手伝ってくれます...

4

1 に答える 1

0

Cookie 値が選択項目と等しいかどうかを確認する必要があります。その場合、アイテムに HTMLselected属性を与えます。

$choices = array(
  'good' => 'Good',
  'ok'   => 'A bit low but we can use it'
);

<select name="quality" onChange="setCookie('quality', this.value, 60*60*2)">
  <option>Select One</option>

  <?php foreach ($choices as $value=>$select): ?>

    <option value="<?php echo $value ?>"
      <?php if(isset($_COOKIE["quality"]) && $_COOKIE["quality"] == $value): ?>
        selected="selected"
      <?php endif; ?>
    >
      <?php echo $select ?>
    </option>

  <?php endforeach; ?>

</select>

このコードはテストしていないため、変更が必要になる場合があります。しかし、主なアイデアはそこにあります。


編集:チェックボックスの例:

$choices = array(
  'good' => 'Good',
  'ok'   => 'A bit low but we can use it'
);

<?php foreach ($choices as $value=>$choice): ?>

  <input type="checkbox" value="<?php echo $value ?>"
    onclick="setCookie('checkbox', this.value, 60*60*2)"
    <?php if(isset($_COOKIE["checkbox"]) && $_COOKIE["checkbox"] == $value): ?>
      checked="checked"
    <?php endif; ?>
  >
  <?php echo $select ?>

<?php endforeach; ?>

このコードの問題は、ユーザーがチェック ボックスをクリックせずに、たとえばキーボードを使用して選択すると機能しないことです。

于 2012-05-18T12:53:15.337 に答える