我有一个.csv文件,其中包含用逗号分隔的产品名称及其数量。我想从组合框中选择一个产品,并将其数量显示为我输入的数字类型的"最大值"。以下是.csv文件的示例:
Xbox,12
Playstation,15
Switch,13
以下是我的HTML和PHP代码示例:
<form class="" method="POST" action="index.php">
<label for="product"> Produit </label>
<select name="product" id="espace">
<option value="">--Please choose a product--</option>
<?php
$file = fopen('prodct.csv', 'r');
if ($file){
while ($ligne = fgets($file))
{
$l = explode(',', $ligne);
echo '<option value="'.$l[0].'">'.$l[0].'</option>';
}
fclose($file);
}
?>
</select>
<br> <label for="quantity"> Quantity </label>
<input type="number" name="quantity" value="" min="0" max=""/>
</form>
否,因为PHP只是服务器端。。阅读一下客户端编程和服务器端编程之间的区别是什么?
但是,将其放入json中,并在select上使用onchange
事件,然后从对象中获取值,然后设置到quantity字段中,这是很琐碎的。
注意,在出现任何错误的情况下,您应该在输出之前先做PHP的工作,因为我们将多次重用$products
。
示例:
<?php
$products = [];
$file = fopen('prodct.csv', 'r');
if ($file) {
while ($ligne = fgets($file)) {
$l = explode(',', $ligne);
$products[trim($l[0])] = trim($l[1]);
}
fclose($file);
}
?>
<form class="" method="POST" action="index.php">
<label for="product"> Produit </label>
<select name="product" id="espace">
<option value="">--Please choose a product--</option>
<?php foreach(array_keys($products) as $product):?>
<option><?= $product ?></option>
<?php endforeach; ?>
</select>
<br> <label for="quantity"> Quantity </label>
<input type="number" name="quantity" value="" min="0" max="" />
</form>
<script>
let products = <?= json_encode($products) ?>
document.querySelector('[name="product"]').addEventListener("change", function() {
document.querySelector('[name="quantity"]').value = products[this.value]
});
</script>
工作示例:https://repl.it/@lcherone/BlueCreepyApplicationstack#index.php