场景是这样的:见下方选择
<form name="limit">
<select name="limiter" onChange="limit(this.value)">
<option selected="selected"> </option>
<option value="5">5</option>
<option value="10">10</option>
<option value="15">15</option>
</select>
</form>
我希望无论何时选择任何选项都会发生 3 件事:
1.) js limit() 函数被调用,它所做的一切都是获取当前 url,添加新的查询参数 'limit' 和用户选择的值,例如:
http://localhost/blahblah/apps/category.php?pg=1&catId=3021& 限制=5
(这将导致 category.php 页面被命中,并且显示的产品数量限制为用户选择的值)
2.) 一旦 url 被点击,它会重新加载,但我不要希望选择的值重置为默认值(目前是这样做的)。我希望它在页面重新加载后反射(reflect)用户的选择。
3.) 此外,当我移动到下一页(分页)时,我希望将状态带到下一页(即记住用户选择)。
最佳答案
只需使用 PHP 分配选定的值:
<form name="limit">
<select name="limiter" onChange="limit()">
<option <?php if(!isset($_POST['limiter'])) echo ' selected="selected"'; ?>> </option>
<option <?php if(isset($_POST['limiter']) && $_POST['limiter'] == 5) echo ' selected="selected"'; ?> value="5">5</option>
<option <?php if(isset($_POST['limiter']) && $_POST['limiter'] == 10) echo ' selected="selected"'; ?> value="10">10</option>
<option <?php if(isset($_POST['limiter']) && $_POST['limiter'] == 15) echo ' selected="selected"'; ?> value="15">15</option>
</select>
</form>
由于代码变得难以阅读,您可以使用 PHP 进行循环:
<form name="limit">
<select name="limiter" onChange="limit()">
<option <?php if(!isset($_POST['limiter'])) echo ' selected="selected"'; ?>> </option>
<?php foreach(array(5, 10, 15) as $p): ?>
<option <?php if(isset($_POST['limiter']) && $_POST['limiter'] == $p) echo ' selected="selected"'; ?> value="<?php echo $p; ?>">
<?php echo $p; ?>
</option>
<?php endforeach; ?>
</select>
</form>
关于php - 在 php 中加载页面时选择选项清除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2295351/