2016-12-29 2 views
0

На моей странице поиска в Интернете у меня есть раскрывающееся меню. При этом я могу сортировать результат по цене, имя ...Добавить переменную php для выбора значений параметров

Слово для поиска я искал в массиве $ _GET. ? Kereses.php к = тест, я создал вар этого, как:

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

Как я могу добавить эту переменную $ K для выбора опций?

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 в порядке.

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";} 

UPDATE:

Когда страница kereses.php показывает вверх, URL и $ _GET выглядит следующим образом:? Kereses.php к = тест

Если я выбираю вариант, сортировать результат, я хочу, URL и GET выглядел: kereses.php к = тест & sort_by = price_asc

Update 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>'; 
+0

Вы хотите отображать '$ k' в качестве опции для пользователя на выбор? – Shank

+0

Нет, я хочу привязать $ k var к выбираемым параметрам. Теперь, если я выберу опцию, из $ GET выберем $ k var. При простом поиске без выбора, url выглядит так: kereses.php? K = test, и я хочу, если я выберу вариант для сортировки результата, kereses.php? K = test & order = price_asc. –

+0

Итак, давайте скажем $ k = "Hello". Так будет ли ур вариантом 'Legújabb termékek Hello'? и т. д. – Shank

ответ

0

Вам необходимо сохранить оригинальную ПОЛУЧИТЬ где-нибудь. Вот пример:

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'] обратно в виде GET как скрытый атрибут.

+0

Хорошо, не работает, но я не понимаю, как GET хранит эти данные после того, как я выбрал любые параметры. Но это работает! :) –

+0

Код находится в обновлении 2, в моем первом посте. –

Смежные вопросы