在php中加载页面时,select选项清除

Afa*_*mee 2 html javascript php ajax select

场景是这样的:见下面的选择

<form name="limit">
    <select name="limiter" onChange="limit(this.value)">
        <option selected="selected">&nbsp;</option>
        <option value="5">5</option>
        <option value="10">10</option>
        <option value="15">15</option>
    </select>
</form>
Run Code Online (Sandbox Code Playgroud)

我希望无论何时选择任何选项来实现3件事:

1.)调用js limit()函数,它只需要当前的url,用用户选择的值添加新的查询参数'limit',例如:

http://localhost/blahblah/apps/category.php?pg = 1&catId = 3021&limit = 5

(这将导致命中category.php页面,并且显示的产品数量限制为用户选择的值)

2)一旦URL被击中,它重新加载,但我DONT想选择重置为默认值(它目前如此)的值.我想让它反映页面重新加载后的用户选择.

3.)此外,当我移动到下一页(分页)时,我希望将状态带到下一页(即记住用户选择).

Tat*_*nen 8

只需使用PHP分配所选值:

<form name="limit">
    <select name="limiter" onChange="limit()">
        <option <?php if(!isset($_POST['limiter'])) echo ' selected="selected"'; ?>>&nbsp;</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>
Run Code Online (Sandbox Code Playgroud)

由于代码难以阅读,您可以使用PHP进行循环:

<form name="limit">
    <select name="limiter" onChange="limit()">
        <option <?php if(!isset($_POST['limiter'])) echo ' selected="selected"'; ?>>&nbsp;</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>
Run Code Online (Sandbox Code Playgroud)