添加php变量以选择选项值

时间:2016-12-29 19:25:00

标签: php sql

在我的网上商店搜索页面上,我有一个选择下拉列表。有了它,我可以按价格,名称......对结果进行排序。

我搜索的单词位于$ _GET数组中。 kereses.php?k = test,我创建了一个var,如:

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

更新

当kereses.php页面出现时,url和$ _GET看起来像:kereses.php?k = test

如果我选择一个选项,要对结果进行排序,我希望网址和GET看起来像: ?kereses.php K =试验&安培; 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 个答案:

答案 0 :(得分:0)

您需要将原始GET存储在某处。这是一个例子:

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表单中。