-1

我想在 html 表单中为下拉菜单设置一个 cookie,当刷新页面时,我应该得到存储在下拉框中 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; 

任何人都帮我设置cookie....

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 回答