我构建了一个包含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>
编辑我希望在提交表单之前显示该值。
答案 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>