从数据库表列获取变量到选项字段中基于输入字段的所选选项

时间:2018-08-20 11:25:40

标签: php mysql sql

我已成功从表中检索出两列,并将结果显示为表单中select标记中的选项。

问题是,根据所选选项,我无法将第三列中的数据显示在输入字段中,该字段的格式也是如此。

数据库连接或为select标记中的选项检索数据都没有问题。

任何帮助将不胜感激。相关代码如下。

     <div class="col-md-4 col-12 bottommargin-sm">
      <label for="">Choose currency</label>
      <select class="form-control" id="exampleFormControlSelect1">

        <option value="">Choose currency...</option>

        <?php

        // Including DB connection file
        include_once "config/config.php";

        // Retrieving all columns from currency table
        $result = mysqli_query($con, "SELECT * FROM currency_test");

        // Loop printing options with country and currrency for all rows in currency table
        while($row = mysqli_fetch_array($result)) {

          print "<option>";

          echo $row['country'] . " - " . $row['currency'];

          print "</option>";

        }

        // Closing DB connection
        mysqli_close($con);

        ?>

      </select>
    </div>

    <div class="col-md-2 col-12 bottommargin-sm">
      <label for="">Currency rate</label>
      <input type="text" class="form-control" value="<?php echo $row['buy_rate'] ?>" readonly>
    </div>

其他修改

我现在正在使用以下代码,仍然没有运气:

     <div class="col-md-4 col-12 bottommargin-sm">
      <label for="">Choose currency/label>
      <select class="form-control" id="exampleFormControlSelect1">

        <option value="default">Choose currency...</option>

        <?php

        // Including DB connection file
        include_once "config/config.php";

        // Retrieving all columns from currency table
        $result = mysqli_query($con, "SELECT * FROM currency_test");

        // Loop printing country, currrency, buy_rate and sell_rate for all rows in currency table
        while($row = mysqli_fetch_array($result)) {

          echo "<option value=".$row['currency']."> ".$row['country']. " - " .$row['currency']." </option>";

        }

        ?>

      </select>
    </div>

    <div class="col-md-2 col-12 bottommargin-sm">
      <label for="">Currency rate</label>
      <input type="text" class="form-control" value="<?php echo $row['buy_rate'] ?>" readonly>
    </div>

    <?php

    // Closing DB connection
    mysqli_close($con);

    ?>

3 个答案:

答案 0 :(得分:0)

如前所述,在上面的while循环中有一个SET值,但是您希望输入字段仅包含一个值:所选货币的购买率。如果我猜对了,这就是您想要的,那么它将无法正常工作。

如果您要测试它,而只在while循环中检索单个值,那么您的输入字段也会填充正确的购买率。

您可以使用JavaScript,也可以不使用JavaScript,但是您需要第二条语句来检索所需的购买率。

其他安全建议:如果没有__ DIR __,则不应使用include指令。您都不应该使用“ SELECT * ...”。最好是将所有要检索的字段都命名。

答案 1 :(得分:-1)

您必须对此选择有一个说明。 (提示:同样,在标记中,您还必须设置一个value属性)。如果您使用提交按钮,则您的选择还需要一个名称。

现在,当您提交表单时,您可以查询数据库并显示正确的记录。

如果您不想使用“提交”按钮,并且希望通过选择更改文本字段中的值,则需要使用javascript。

答案 2 :(得分:-2)

所以我看到了:

1)选择标签中没有名称

<select class="form-control" id="exampleFormControlSelect1">

没有名称属性。因此,在发布表单之后,服务器不知道变量的名称。

2)没有价值

print "<option>";

您没有提供任何值。因此,您的服务器在发布表单后不知道值(用户选择的值)。

这是选择标记的正确方法:https://www.w3schools.com/tags/tag_select.asp