从选择和回声中获取价值

时间:2018-04-11 11:30:44

标签: php html file csv

我构建了一个包含select标记的表单,该标记从.csv文件生成选项。但是我无法获取所选选项,然后在表单中回显它。

该变量称为$ selectedCurrency。

编辑:在发布/提交表单之前我不想显示的价值,因此我对使用$ _POST的理解是错误的。

<form method="post">
  <div class="form-group">
    <label for="exampleFormControlSelect1" class="mb-3">Hvilket land eller valuta?</label>
    <select class="form-control" name="selectedCurrency" id="selectedCurrency">

          <?php
          $handle = fopen("currency/kurs.csv", "r");
          $g=0;

          while (($data = fgetcsv($handle, 1000, ";")) !== false) {
              $num = count($data);

              if ($g!=0) {
                  ?>

          <option value="<?php echo $data[0]; ?>">
            <?php echo $data[1]; ?> - <?php echo $data[2]; ?>
          </option>

          <?php
              }
              $g++;
          }
            fclose($handle);

          $selected_val = $_POST['selectedCurrency'];

          ?>

        </select>
  </div>

  <div class="form-group">
    <label for="exampleFormControlInput1" class="mb-3">Hvor meget vil du købe?</label>
    <input type="number" class="form-control" placeholder="Beløb i <?php echo $selected_val ?>">
  </div>
  </div>

</form>

编辑我希望在提交表单之前显示该值。

3 个答案:

答案 0 :(得分:0)

while部分代码应如下所示:

$selected_val = $_POST['selectedCurrency'];
while (($data = fgetcsv($handle, 1000, ";")) !== false) {
    $num = count($data);

    if ($g!=0) {
    ?>

        <option value="<?php echo $data[0]; ?>" <?php echo $selected_val == $data[0] ? "selected": "" ?>>
            <?php echo $data[1]; ?> - <?php echo $data[2]; ?>
        </option>

    <?php
    }
    $g++;
}

将您的$selected_val变量移动到while循环上方,以便它在循环下可用,您可以根据选项值进行检查。

答案 1 :(得分:0)

如果您想在提交表单之前发生某些事情,那么您必须使用Javascript / jQuery。在你的情况下:

    $("#selectedCurrency").change(function(){
    let scurrency = $("#selectedCurrency").val();
   //add id into input [type="number"] tag, for precise selection targeted input tag."
   //I have used "svalue" as id of input type number
   $('#svalue').val(scurrency);
});

答案 2 :(得分:0)

我使用select标签上的onChange属性修复了问题,然后编写了以下函数:

    <script>

      function getSelectedCurrency(selectObject) {
        var currency = selectObject.value;
        document.getElementById("selectedCurrency").innerHTML = currency;
      }

    </script>