javascript - 选择选项后自动显示数据库值

标签 javascript php

假设我有这样的 SQLite 数据库:

+----+-----------+-------+
| id | name      | price |
+----+-----------+-------+
| C1 | Car       | 50000 |
| B1 | Bike      | 1500  |
| M1 | Motorbike | 15000 |
| T1 | Truck     | 99000 |
+----+-----------+-------+

然后为了向选择表单显示数据库,我使用以下代码:

<form method="post" action="action.php">
    <table>
        <tr>
            <td>Vehicle</td>
            <td>:</td>
            <td>                            
                <select name='id_vh' onchange='OnChange(this.value)' required>
                <option selected value=''>choose</option>
                    <?php               
                        $sql="SELECT * FROM vehicle ORDER BY name ASC";
                        $result=$db->query($sql);
                        $row=$result->fetchall(PDO::FETCH_ASSOC);
                        foreach($row as $dt){
                        echo "<option value='$dt[id]'>$dt[name]</option>";}
                    ?>
                </select>
            </td>
        </tr>

如何在选择选项后自动显示价格,我使用这样的代码但不起作用:

<tr>
            <td>Price</td>
            <td>:</td>
            <?php
            if(isset($_POST['id_vh'])){
                $idv=$_POST['id_vh'];
                $query=$db->prepare("SELECT * FROM price WHERE id = '$idv'");
                $query->execute();
                $result    =   $query->fetch(PDO::FETCH_ASSOC);
                echo"<td>$result[price]</td>";
            }
            ?>
         </tr>
    </table>
</form>

最佳答案

为要处理的表单设置一个 ID

<form id="vehicleForm" method="post" action="action.php">
  <table>
    <tr>
      <td>Vehicle</td>
      <td>:</td>
      <td>                            

为您的选择器设置一个 ID 来处理

<select id='id_vh' name='id_vh' required>
  <option selected value=''>choose</option>
  <?php               
     $sql="SELECT * FROM vehicle ORDER BY name ASC";
                    $result=$db->query($sql);
                    $row=$result->fetchall(PDO::FETCH_ASSOC);
                    foreach($row as $dt){
                    echo "<option value='$dt[id]'>$dt[name]</option>";}
 ?>
            </select>
        </td>
    </tr>

添加 jquery 文件

<script type="text/javascript" src="/js/jquery.min.js"></script>

添加一个函数来拦截变化

<script Type="text/javascript">
  $('#id_vh').on("change",(function (e) {
    /*just for debugging*/  
    alert( this.selectedOptions[0].value);
    /*submit the Form*/ 
    vehicleForm.submit();
}));
</script>  

这应该有效。 $_POST 现在将包含 id_vh 的值

关于javascript - 选择选项后自动显示数据库值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38262692/

相关文章:

javascript - 与我使用的模型相比,我的解决方案在技术上是否合理?

javascript - 检查文件何时被拖到网站

javascript - 如何使用 Vue 的内置机制预取图像

php - 为什么这个 PDO 语句会默默地失败?

javascript - jQuery 代码风格指南

javascript - TypeError : this. getAttribute 不是函数 - javascript

javascript - 在特定页面上隐藏 div 或 class 元素并在其他页面上显示

php - 条件下的 laravel 隐藏字段

php - 将整数从 DB2 转换为带有日期间隔的日期以进行 mysql 插入

php - href链接中的 "/./"是什么意思?