如何添加选定的attr以选择选项

时间:2014-03-12 21:16:08

标签: javascript php jquery html forms

我有一些过滤器,搜索引擎,但是如果你选择一个或多个选项,并选择动作"过滤器",在selectach中是我的第一选择,而不是我过滤的那个。如何在选择特定过滤器时执行此操作,在过滤器批准后进行搜索或过滤器(重新加载页面)会记住我搜索过滤器后的过滤器?

代码:

<form action="index.php?id=fakturysprzedaz" method='GET'>
<tr><td colspan="2" style="height: 10px;"></td></tr>
<input type='hidden' name='id' value='fakturysprzedaz' >
Typ <select name="type">
<option value="0" name="type" >Wszystko</option>
<option value="1" name="type">Pro-forma</option>
<option value="2" name="type">Faktura VAT</option>
<option value="3" name="type">Korekta faktury VAT</option>
<option value="4" name="type">Faktura barterowa</option>
</select>


<br>
Status<select name="status">
<option name="status" value="0">Wszystko</option>
<option name="status" value="1">Do akceptacji</option>
<option name="status" value="2">Anulowana</option>
<option name="status" value="3">Odrzucona</option>
<option name="status" value="4">Zaakceptopwana</option>
<option name="status" value="5">Wersja robocza</option>
</select><br>
Tansakcja<select name="transakcja">
<option name="transakcja" value="0">Wszystko</option>
<option name="transakcja" value="1">Krajowa</option>
<option name="transakcja" value="2">Zagraniczna</option>
</select><br>
Status Płatności<select name="status-plat">
<option name="status-plat" value="0">Wszystko</option>
<option name="status-plat" value="2">Zapłacono</option>
<option name="status-plat" value="1">Nie zapłacono</option>
</select>
<br>
Kontrahent
<select name="kontrahenci">

<option name="kontrahenci" value="0">Wszystko</option>
<?
$kontrahenciQuery=mysql_query("SELECT * FROM contractors");
while($kontrahenci=mysql_fetch_object($kontrahenciQuery)){
?>
<option name="kontrahenci" value="<?=$kontrahenci->id?>"><?=$kontrahenci->name?></option>
<?
}
?>
</select><br>
Użytkownik<select name="uzytkownik">
<option name="uzytkownik" value="0">Wszystko</option>
<?
$uzytkownicyQuery=mysql_query("SELECT * FROM users");
while($uzytkownicy=mysql_fetch_object($uzytkownicyQuery)){
?>
<option name="uzytkownik" value="<?=$uzytkownicy->id?>"><?=$uzytkownicy->first_name?> <?=$uzytkownicy->last_name?></option>
<?
}
?>
</select><br>
Oddział<select name="oddzial">
<option name="oddzial" value="0">Wszystko</option>
<?
$oddzialQuery=mysql_query("SELECT * FROM departments");
while($oddzial=mysql_fetch_object($oddzialQuery)){
?>
<option name="oddzial" value="<?=$oddzial->id?>"><?=$oddzial->name?> (<?=$oddzial->shortname?>)</option>
<?
}
?>
</select><br>

<tr><td colspan="2" style="height: 10px;"></td></tr>
<tr><td colspan="2" style="height: 30px;"><input type="submit" class="button" name="szukaj" value="Filtruj" /></td></tr>
<?$lata=mysql_query("SELECT DISTINCT YEAR(date_issue) as year FROM invoices_sales");
while($rok=mysql_fetch_object($lata)){
?>
<button type="submit" value="<?=$rok->year?>" name="rok"><?=$rok->year?></button>
<?
}
?>
<?
if(isset($_GET['rok']))
$miesiace=mysql_query("SELECT DISTINCT MONTH(date_issue) as month FROM invoices_sales WHERE YEAR(date_issue)='".$_GET['rok']."'");
else{
$miesiace=mysql_query("SELECT DISTINCT MONTH(date_issue) as month FROM invoices_sales WHERE YEAR(date_issue)='".$_SESSION['a-rok']."'");
}
while($miesiac=mysql_fetch_object($miesiace)){
//print_r($miesiac);
?>
<button type="submit" value="<?=$miesiac->month?>" name="month"><?=$miesiac->month?></button>
<?
}
?>
</form>

2 个答案:

答案 0 :(得分:0)

当您返回页面时,您希望您的选择保留该值,对吗? 您要做的是保存选择框的状态。

我想到了实现这三种方法的三种方法:

  1. 获取选择框的值,将其序列化并将其存储在cookie中

    一个不错的解决方案是here

  2. 获取值并通过Ajax将状态保存到后端

  3. 获取价值并通过向后端获取请求保存状态

  4. $(document).ready(function() {
      $('#myDropdown').val('<?php echo $_GET['saveFilters']; ?>');
      $('#myDropdown').change(function() {
       location.href = 'http://website.com/backend.php?saveFilters=' + $(this).val();
      });
    });
    

    获取价值意味着获得“选定”状态。您可以使用$("myDropdown).val();$("myDropdown option:selected);

    当页面重新加载时,使用保存的cookie或保存的会话数据重新创建正确的显示。

答案 1 :(得分:0)

不要将名称标签与选项一起使用。仅在选择时使用它。如果我的问题是正确的,那么在迭代选项时,为所选选项添加“selected”标签,如下所示:“<option selected value='1'>Choise 1</option>”。例如,如果$ _REQUEST [kontrahenci] -parameter的值与迭代行的值相同,则应选择该选项。