2016-10-02 174 views
1

當我有一個選擇下拉菜單是這樣的:再從數據庫中獲得數據,更改選擇選項

<select name="city" id="order_form_select"> 
    <option value="" disabled selected>Ort ↓</option> 
    <option>Option 1</option> 
    <option>Option 2</option> 
    <option>Option 3</option> 
    <option>Option 4</option> 
</select> 

而且我得到一些像這樣的單選按鈕:

<?php 
$statement = $pdo->prepare('SELECT some_column FROM my_table WHERE some_value = "abc" AND city = :city'); 
$statement->execute(array('city' => $city)); 
$row = $statement->rowCount(); 
if ($row == 0) { 
    echo "<input type=\"radio\" name=\"something\" value=\"option1\">Option 1</p>"; 
} 

$statement = $pdo->prepare('SELECT some_column FROM my_table WHERE some_value = "xyz" AND city = :city'); 
$statement->execute(array('city' => $city)); 
$row = $statement->rowCount(); 
if ($row == 0) { 
    echo "<input type=\"radio\" name=\"something\" value=\"option2\">Option 2</p>"; 
} 
?> 

正如你所看到的,這些單選按鈕取決於選擇選項。這意味着,只要用戶更改選項選項,PHP代碼就必須刷新,但選擇框的選擇必須保持登錄狀態。

什麼是正確/常用的方法?

+0

你能告訴我們你面臨的問題是什麼? – Zeeshan

+0

你問如何永久性地將選擇存儲到數據庫,或者直到下一頁加載? – atoms

+0

@atoms「只是通過到下一頁加載」 – David

回答

1

Supossing你想每次刷新頁面,你選擇一個值:

  1. 創建這個JavaScript

    <script type="text/javascript"> 
    window.onload = function() { 
        var citySelector = document.getElementById('order_form_select'); 
        citySelector.addEventListener('change', function() { 
         if (this.value) { 
          window.location = 'yourphp.php?city=' + this.value 
         } 
        }, false); 
    } 
    </script> 
    
  2. 在你的HTML代碼,增值到您的選擇:

<select name="city" id="order_form_select"> 
    <option value="" disabled selected>Ort ↓</option> 
    <option value="City1">Option 1</option> 
    <option value="City2">Option 2</option> 
    <option value="City3">Option 3</option> 
    <option value="City4">Option 4</option> 
</select> 
  • 爲了保持刷新後的值:
  • <select name="city" id="order_form_select"> 
        <option value="" disabled <?php echo !isset($_GET['city']) ? 'selected' : ''; ?>>Ort ↓</option> 
        <option value="City1" <?php echo isset($_GET['city']) && $_GET['city'] == 'City1' ? 'selected' : ''; ?>>Option 1</option> 
        <option value="City2" <?php echo isset($_GET['city']) && $_GET['city'] == 'City2' ? 'selected' : ''; ?>>Option 2</option> 
        <option value="City3" <?php echo isset($_GET['city']) && $_GET['city'] == 'City3' ? 'selected' : ''; ?>>Option 3</option> 
        <option value="City4" <?php echo isset($_GET['city']) && $_GET['city'] == 'City4' ? 'selected' : ''; ?>>Option 4</option> 
    </select> 
    

    編輯後的版本:

    如果你想避免使用JavaScript來做到這一點任務,你可以改變你的方式:

    <form action="yourphpfile.php" method="GET"> 
        <select name="city" id="order_form_select"> 
        <option value="" disabled <?php echo !isset($_GET['city']) ? 'selected' : ''; ?>>Ort ↓</option> 
        <option value="City1" <?php echo isset($_GET['city']) && $_GET['city'] == 'City1' ? 'selected' : ''; ?>>Option 1</option> 
        <option value="City2" <?php echo isset($_GET['city']) && $_GET['city'] == 'City2' ? 'selected' : ''; ?>>Option 2</option> 
        <option value="City3" <?php echo isset($_GET['city']) && $_GET['city'] == 'City3' ? 'selected' : ''; ?>>Option 3</option> 
        <option value="City4" <?php echo isset($_GET['city']) && $_GET['city'] == 'City4' ? 'selected' : ''; ?>>Option 4</option> 
        </select> 
    <input type="submit" value="search by city"> 
    </form> 
    

    希望這可以幫到你

    +0

    我編輯了我的答案,由於與您的問題的誤解 –

    +0

    嗨,謝謝你的回答。但是,如果在用戶瀏覽器上禁用Javascript,該怎麼辦? – David

    +0

    大衛您好,我編輯了我的答案,您可以使用原生html功能,選擇您的城市並點擊按鈕提交信息 –