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

u0sqgete  于 2021-06-20  发布在  Mysql
关注(0)|答案(3)|浏览(250)

我已经成功地从我的表中检索了两列,并将结果作为选项显示在我的表单中的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);

    ?>
xam8gpfp

xam8gpfp1#

你必须有一个选择的声明(提示:在标签中,您还必须设置一个value属性)如果使用submit按钮,select也需要一个名称。。
现在,当您提交表单时,您可以查询数据库并显示正确的记录。
如果不想使用submit按钮并通过选择更改textfield中的值,则需要javascript。

kgsdhlau

kgsdhlau2#

我看到的是:
1) 选择标记中没有名称

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

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

print "<option>";

你没有提供价值。因此,在发布表单后,服务器不知道值(用户选择的值)。
这是选择标记的正确方法:https://www.w3schools.com/tags/tag_select.asp

t3psigkw

t3psigkw3#

如前所述,在上面的while循环中有一个结果集,但您只希望输入字段包含一个值:所选货币的买入汇率。如果我猜对了,而这正是你想要的,这将不会像这样工作。
如果您想测试它并且只在while循环中检索一个值,那么您的输入字段也会被正确的购买率填充。
您可以使用javascript或不使用javascript来完成,但是您需要第二条语句来检索所需的buyrate。
进一步的安全建议:您不应该在没有dir的情况下使用include指令。也不应使用“选择*…”。最好是命名所有要检索的字段。

相关问题