2016-02-09 36 views
3

實施例:如何從與一個類的元素髮送數據中選擇的問題

我有HTML:

<form action="GET"> 
    <button onclick="$(this).toggleClass('selected')">2000</button> 
    <button onclick="$(this).toggleClass('selected')">2001</button> 
    <button onclick="$(this).toggleClass('selected')">2002</button> 
    <button onclick="$(this).toggleClass('selected')">2003</button> 
    <button onclick="$(this).toggleClass('selected')">2004</button> 
    <button onclick="$(this).toggleClass('selected')">2005</button> 
    <button onclick="$(this).toggleClass('selected')">2006</button> 
    <button onclick="$(this).toggleClass('selected')">2007</button> 
    <input type="submit" value="submit" /> 
</form> 

和示例數據庫的一部分:

year | title | ... 
2000 | film1 
2000 | film2 
2002 | film3 
2001 | film4 
.... | ..... 

我需要根據選定的字段搜索數據庫記錄。

+1

哪裏是你的',而您從您的最終試圖search'代碼? –

+0

給你的按鈕一個'name'屬性,也許將它們改爲'inputs'類型=按鈕 – CodeGodie

+0

爲什麼你的表單的action屬性有「GET」? – CodeGodie

回答

1

你不能只用班級做。發送表單時,您必須確保發送了具有name屬性的正確input元素。我會做的是刪除內聯JS並添加到切換類來禁用/啓用相應的輸入。嘗試了這一點:

<form action="submit.php" method="post"> 
    <button type="button"> 
     2000 
     <input type="hidden" name="options[]" value="2000" disabled> 
    </button> 

    <button type="button"> 
     2001 
     <input type="hidden" name="options[]" value="2001" disabled> 
    </button> 

    <button type="button"> 
     2002 
     <input type="hidden" name="options[]" value="2002" disabled> 
    </button> 

    <button type="button"> 
     2003 
     <input type="hidden" name="options[]" value="2003" disabled> 
    </button> 

    <input type="submit" value="submit"/> 
</form> 


<script> 
    $('button').click(function() { 
     $(this).toggleClass('selected').promise().done(function() { 
      if ($(this).hasClass('selected')) { 
       $(this).find('input').prop('disabled', false); 
      } else { 
       $(this).find('input').prop('disabled', true); 
      } 
     }); 
    }); 
</script> 

submit.php就會有結果是這樣的:

array (size=1) 
    'options' => 
    array (size=2) 
     0 => string '2000' (length=4) 
     1 => string '2002' (length=4)