Сохранение предыдущего при добавлении нового в форму - PullRequest
2 голосов
/ 26 октября 2009

У меня есть эта форма, которая поставляется с некоторыми параметрами с другой страницы. Я хочу сохранить эти значения и добавить параметр sortby, но каждый раз, когда я нажимаю, отправить все параметры исчезают, но новый параметр sortby.

Как сохранить параметры с предыдущей страницы и добавить или изменить только параметр orderby.

<form name="formSearch" action="<?php echo $_SERVER['PHP_SELF']."?".$_SERVER['QUERY_STRING']; ?>"  method="GET">
    <select name="order_by" id="order_by">
        <option <?php if( isset($_REQUEST['order_by']) && $_REQUEST['order_by'] == 1) { echo "selected"; } ?> value="1">Ultima Modificacion (Reciente)</option>
        <option <?php if( isset($_REQUEST['order_by']) && $_REQUEST['order_by'] == 2) { echo "selected"; } ?> value="2">Ultima Modificacion (Viejo)</option>
        <option <?php if( isset($_REQUEST['order_by']) && $_REQUEST['order_by'] == 3) { echo "selected"; } ?> value="3">Precio (Mayor to Menor)</option>
        <option <?php if( isset($_REQUEST['order_by']) && $_REQUEST['order_by'] == 4) { echo "selected"; } ?> value="4">Precio (Menor to Mayor)</option>
        <option <?php if( isset($_REQUEST['order_by']) && $_REQUEST['order_by'] == 5) { echo "selected"; } ?> value="5">Marca/Modelo (A to Z)</option>
        <option <?php if( isset($_REQUEST['order_by']) && $_REQUEST['order_by'] == 6) { echo "selected"; } ?> value="6">Marca/Modelo (Z to A)</option>
    </select>
    <input name="submit" type="submit" />
</form>

Ответы [ 3 ]

1 голос
/ 26 октября 2009

Добавить

<INPUT type='hidden' name='OPT1' VALUE='<?php if( isset($_REQUEST['OPT1'])) { echo $_REQUEST['OPT1']; } else { echo "" } ?>

, поскольку вам необходимо передать их как скрытые поля ввода.

OPT1 - это имя параметра для сохранения - добавьте столько их, сколько у вас есть параметров

Если вы хотите, чтобы поля / значения действительно отображались, то:

  • Удалите type='hidden', чтобы отобразить их и редактировать

  • Сделать их отключенными полями ввода, чтобы отображать их и не редактировать.

Однако эти 2 варианта должны быть выполнены аккуратно, например, если старое значение получено с помощью радиокнопки, необходимо отобразить и предварительно заполнить ту же настройку радиокнопки и т. д.

0 голосов
/ 26 октября 2009

Похоже, что способ «формы» работает, если вы используете метод «GET», поэтому, если мне нужно сохранить значения и использовать «GET», мне нужно добавить несколько скрытых полей, таких какбыло предложено.Но я пытался избежать этого.Если кто-то знает лучший способ, пожалуйста, дайте мне знать, если нет, то это будет решение:

"method =" GET ">

$ v) {echo ''." \ N ";}?>

Теперь, если вам не нужно использовать «GET» в форме результатов, просто измените метод на «POST», и он будет работать нормально.

Обратите внимание, что вы пришли из другогоформа, эта форма должна быть "GET", чтобы это работало.

Страница поиска -> Использовать страницу результатов с сортировкой -> Использовать сообщение

0 голосов
/ 26 октября 2009

Простейшим способом сохранения данных было бы убедиться, что на текущей странице присутствуют поля, отвечающие за заполнение рассматриваемых значений. Если они не должны быть видимы пользователю больше на рассматриваемой странице, вы можете установить их на <input type="hidden" name=fieldname" value="value_set_on_previous_submit"/>. Или, если они все еще должны отображаться, просто убедитесь, что их значения установлены на отправленные.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...