我有一个MySql表:
id concept
-------------
1 item1
2 item2
3 item3
我尝试动态生成此表:
<form action="extern.php" method="post">
<?php
$result = mysqli_query($con, 'SELECT * FROM MyTable');
while ($row = mysqli_fetch_array($result)) {
?>
<input type="text" name="<?php echo $row["concept"] ?>"value="<?php echo $row["concept"] ?>"><br>
<?php
}
?>
<input type="submit">
</form>
这给出了html的来源:
<form action="extern.php" method="post">
<input type="text" name="item1" value="item1"><br>
<input type="text" name="item2" value="item2"><br>
<input type="text" name="item3" value="item3"><br>
<input type="submit" name="send">
</form>
我的问题是:
- 当我尝试在hmtl中制作动态表单时,&#34; name&#34;我应该用吗?我的意思是我不能使用静态名称,因为它可能是数据库中的很多值。并且它必须是php稍后可以使用的值
- 我怎样才能在php中捕获该值?
$concept = $_POST["something"]; // how should I do this var?
答案 0 :(得分:0)
您可以在name属性中使用方括号:
<input type="text" name="concepts[<?php echo $row["id"] ?>]"value="<?php echo $row["concept"] ?>">
然后检查特定的ID,例如:
$allConcepts = $_POST["concepts"];
$concept1 = $allConcepts[0]; // Example accessing a specific input
之后您可以遍历 allConcepts 数组来动态处理所有输入。
要召唤:如果使用方括号,例如 name =&#34; myArrayName [x]&#34; PHP将数据很好地映射到数组,您可以通过$访问条目_POST [&#39; myArrayName&#39;] [X]
答案 1 :(得分:0)
你可以试试这个
<form action="extern.php" method="post">
<?php
$result = mysqli_query($con, 'SELECT * FROM MyTable');
$cntConcept=1;
while ($row = mysqli_fetch_array($result)) {
?>
<input type="text" name="<?php echo $row["concept"].$cntConcept ?>" value="<?php echo $row["concept"] ?>"><br>
<?php
$cntConcept=$cntConcept+1;
}
?>
<input type="submit">
</form>
在检索时
$varname="";
for(int i=0;i<3;i++)
{
$varname = "something".i+1;
$concept[i] = $_POST[$varname];
}