Добавить переменную php для выбора значения параметров

На моей странице поиска webshop у меня есть раскрывающийся список select. С этим, я могу сортировать результат по цене, имени…

Слово, которое я искал, находится в массиве $_GET. kereses.php?k=test, я создал var этого, как:

$k = mysqli_real_escape_string($kapcs, $_GET['k']);

Как добавить эту переменную $k в параметры select?

echo '<form method="get" name="listing_items">';
                            echo '<select class="form-control" onchange="listing_items.submit()" name="order">';
                                    echo '<option '. ($order=='new'?' selected="selected"':'').' value="new">Legújabb termékek</option>';
                                    echo '<option '. ($order=='nev_asc'?' selected="selected"':'').' value="nev_asc">Név, A – Z</option>';
                                    echo '<option '. ($order=='nev_desc'?' selected="selected"':'').'value="nev_desc">Név, Z - A</option>';
                                    echo '<option '. ($order=='price_asc'?' selected="selected"':'').' value="price_asc">Ár szerint növekvő</option>';
                                    echo '<option '. ($order=='price_desc'?' selected="selected"':'').'value="price_desc">Ár szerint csökkenő</option>';
                                    echo '<option '. ($order=='cikk_asc'?' selected="selected"':'').' value="cikk_asc">Cikkszám szerint növekvő</option>';
                                    echo '<option '. ($order=='cikk_desc'?' selected="selected"':'').'value="cikk_desc">Cikkszám szerint csökkenő</option>';
                                    echo '<option '. ($order=='suly_asc'?' selected="selected"':'').' value="suly_asc">Súly szerint növekvő</option>';
                                    echo '<option '. ($order=='suly_desc'?' selected="selected"':'').'value="suly_desc">Súly szerint csökkenő</option>';
                            echo '</select>';
                            echo '</form>';

Переменная $order хранит текст, который я поместил в sql в порядке by.

if($order == 'suly_asc'){$orderby = "ORDER BY termek_suly ASC";}
                    if($order == 'suly_desc'){$orderby = "ORDER BY termek_suly DESC";}
                    if($order == 'cikk_asc'){$orderby = "ORDER BY termek_cikkszam ASC";}
                    if($order == 'cikk_desc'){$orderby = "ORDER BY termek_cikkszam DESC";}
                    if($order == 'price_asc'){$orderby = "ORDER BY (CASE termek_akcio WHEN 1 THEN termek_akcios_ar WHEN 0 THEN termek_normal_ar ELSE NULL END ) ASC";}
                    if($order == 'price_desc'){$orderby = "ORDER BY (CASE termek_akcio WHEN 1 THEN termek_akcios_ar WHEN 0 THEN termek_normal_ar ELSE NULL END ) DESC";}
                    if($order == 'nev_asc'){$orderby = "ORDER BY termek_nev ASC";}
                    if($order == 'nev_desc'){$orderby = "ORDER BY termek_nev DESC";}
                    elseif($order == 'new'){$orderby = "ORDER BY termek_id DESC";}

ОБНОВЛЕНИЕ:

Когда кересы.появляется страница php, url и $_GET выглядят так: kereses.php?K=тест

Если я выберу опцию, чтобы отсортировать результат, я хочу, чтобы url-адрес и выглядел как:
kereses.php?k=test&sort_by=price_asc

Обновление 2, рабочий код:

$order = isset($_GET["order"]) ? $_GET["order"]:'new';
                    if(isset($_GET['k']))
                    {
                        $k = mysqli_real_escape_string($kapcs, $_GET['k']);
                    }
                    else
                    {
                        $k = "";
                    }
                    echo '<div class="pull-left"><p>A keresett kifejezés: <b>'.$k.'</b></p></div>';
                    echo '<div class="pull-right">';
                            echo '<form method="get" name="listing_items">';
                            echo '<input type="hidden" name="k" value="'.html($_GET['k']).'">';
                            echo '<select class="form-control" onchange="listing_items.submit()" name="order">';
                                    echo '<option '. ($order=='new'?' selected="selected"':'').' value="new">Legújabb termékek</option>';
                                    echo '<option '. ($order=='nev_asc'?' selected="selected"':'').' value="nev_asc">Név, A – Z</option>';
                                    echo '<option '. ($order=='nev_desc'?' selected="selected"':'').'value="nev_desc">Név, Z - A</option>';
                                    echo '<option '. ($order=='price_asc'?' selected="selected"':'').' value="price_asc">Ár szerint növekvő</option>';
                                    echo '<option '. ($order=='price_desc'?' selected="selected"':'').'value="price_desc">Ár szerint csökkenő</option>';
                                    echo '<option '. ($order=='cikk_asc'?' selected="selected"':'').' value="cikk_asc">Cikkszám szerint növekvő</option>';
                                    echo '<option '. ($order=='cikk_desc'?' selected="selected"':'').'value="cikk_desc">Cikkszám szerint csökkenő</option>';
                                    echo '<option '. ($order=='suly_asc'?' selected="selected"':'').' value="suly_asc">Súly szerint növekvő</option>';
                                    echo '<option '. ($order=='suly_desc'?' selected="selected"':'').'value="suly_desc">Súly szerint csökkenő</option>';
                            echo '</select>';
                            echo '</form>';

1 ответ

  1. Вам нужно хранить исходное получить где-то. Вот пример:

    echo '<form method="get" name="listing_items">';
        echo '<input type="hidden" name="k" value="<?php echo htmlspecialchars($_GET['k']);?>">';
        echo '<select class="form-control" onchange="listing_items.submit()" name="order">';
            echo '<option '. ($order=='new'?' selected="selected"':'').' value="new">Legújabb termékek</option>';
            echo '<option '. ($order=='nev_asc'?' selected="selected"':'').' value="nev_asc">Név, A – Z</option>';
            echo '<option '. ($order=='nev_desc'?' selected="selected"':'').'value="nev_desc">Név, Z - A</option>';
            echo '<option '. ($order=='price_asc'?' selected="selected"':'').' value="price_asc">Ár szerint növekvő</option>';
            echo '<option '. ($order=='price_desc'?' selected="selected"':'').'value="price_desc">Ár szerint csökkenő</option>';
            echo '<option '. ($order=='cikk_asc'?' selected="selected"':'').' value="cikk_asc">Cikkszám szerint növekvő</option>';
            echo '<option '. ($order=='cikk_desc'?' selected="selected"':'').'value="cikk_desc">Cikkszám szerint csökkenő</option>';
            echo '<option '. ($order=='suly_asc'?' selected="selected"':'').' value="suly_asc">Súly szerint növekvő</option>';
            echo '<option '. ($order=='suly_desc'?' selected="selected"':'').'value="suly_desc">Súly szerint csökkenő</option>';
        echo '</select>';
    echo '</form>';
    

    Я сохраняю значение $_GET['k']back в форме GET как скрытый атрибут.