![](/img/trans.png)
[英]Select data from database depends on select value option in node and ejs
[英]Get data from database again, when changing select option
我有一个像这样的选择下拉列表:
<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代码就必须刷新,但选择框选项必须保持登录状态。
这样做的正确/常用方法是什么?
假设您每次选择值时都要刷新页面:
创建这个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>
在您的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>
希望这对你有所帮助
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.