在我的网上商店搜索页面上,我有一个选择下拉列表。有了它,我可以按价格,名称......对结果进行排序。
我搜索的单词位于$ _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>';
答案 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表单中。