php: сохранить опцию выбора после отправки

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

В настоящее время у меня есть форма, в которой я публикую номер и количество товара, а затем нажимаю «Отправить», чтобы добавить товар в список покупок (таблица ниже).

<form action="<?php echo $current_file.$id; ?>" method="POST">

    Store:  <select>
                    <option value="gross1">Store 1</option>
                    <option value="gross2">Store 2</option>
                    <option value="gross3">Store 3</option>
            </select>

    Art no: <input type="text" size="15" name="number"  /> 

    Quantity: <input type="text" size="3" name="q" />

    <input type="submit" value="Add item" />

</form>

<table>
    <tr>
        <th>
            Art no
        </th>
        <th>
            Article name
        </th>
        <th>
            Price
        </th>
        <th>
            Quantity
        </th>
        <th>
            Total
        </th>
    </tr>

Списки элементов магазинов хранятся в таблицах mysql, поэтому я хочу выбрать магазин (или таблицу, если хотите) с помощью раскрывающегося списка выбора. Но проблема в том, что если магазин, из которого я выбираю товары, не является магазином 1, будет довольно неприятно выбирать магазин снова и снова после каждого нажатия кнопки «Отправить».

Я не думаю, что смогу использовать скрипт, который использует какую-то переменную GET для указания выбранного магазина, потому что я уже использую GET для указания выбранного списка продуктов. Есть ли другой способ заставить сайт запомнить выбранный магазин после обновления страницы?

Заранее спасибо!


person Community    schedule 29.03.2013    source источник
comment
у вас может быть несколько переменных GET, т.е. example.com?var1=hello&var2=goodbye   -  person maxedison    schedule 30.03.2013


Ответы (2)


В вашем php вы обычно устанавливаете SELECTED против опции на основе значения POSTed. Но вам нужно установить имя в теге select.

Вы пробовали искать в Google что-нибудь из этого?

person Captain Payalytic    schedule 29.03.2013
comment
Да, я гуглил его уже пару дней, единственное, что я нашел, это: stackoverflow.com/questions/5233252/ но если я правильно понимаю код, сценарий должен использовать GET. Но может я ошибаюсь? :С - person ; 30.03.2013
comment
Я просто оставил выбранный вариант после отправки, и есть страницы с советами, все похожие на мои. После ввода в Google вы должны фактически прочитать результаты. Все говорят как у меня. - person Captain Payalytic; 30.03.2013

У меня была похожая проблема, и мне нужно было быстрое решение. После выбора значения из раскрывающегося списка и отправки страница перезагружается, что сбрасывает раскрывающийся список как было - без сохранения выбранного значения (даже если выбранное значение было отправлено ($_GET) , Для меня проблема была чисто эстетической, так как я хотел, чтобы пользователь видел выбранное значение. Вот что я сделал:

// Change the parent dropdown selected value to the currently selected value
    $(window).load(function() {

        // Get url attributes which should contain the $_POST or $_GET value and split it. You have to refine this in case you have multiple attributes

        var str=window.location.href; var n=str.split("=");

         // This should be the selected value attribute
         var myAttrVal= n[1];

       // check all options and grab the value (or whatever other unique identifier you're using). Check this value against your url value and when they match, add the selected attribute to that option.
        $('#selectID option').each(function() {

            var selectedOptVal = $(this).attr('value');

            if ( myAttrVal  == selectedOptVal) {

                $(this).attr('selected', 'selected');
            }
        });

    });

Я уверен, что есть гораздо лучшие способы сделать это, но я надеюсь, что это даст вам идеи о том, как решить вашу проблему.

person Tony M    schedule 11.05.2015