Dunno如果标题有意义,但是我有一个变量,它会以基本术语表示它将被称为:
$_POST['something'+$variable2]
我有一个用于编辑所选记录的表单,此表单包含所有先前选择的记录的条目:
<form name="input" action="editcar.php" method="POST">
<input type="submit" value="Yes">
while($row = mysqli_fetch_assoc($result))
{
echo'
</div>
<table style="color:white">
<tr>
<td style="text-align:right">Manufacture:</td><td><input type="text" name="manufacture'.$row['carIndex'].'" value="'.$row['make'].'"></td>
<td style="text-align:right">Model: </td><td><input type="text" name="model'.$row['carIndex'].'" value="'.$row['model'].'"></td>
</tr>
<tr>
<td style="text-align:right">Colour: </td><td><input type="text" name="colour'.$row['carIndex'].'" value="'.$row['colour'].'"></td>
<td style="text-align:right">Reg: </td><td><input type="text" name="reg'.$row['carIndex'].'" value="'.$row['Reg'].'"></td>
</tr>
<tr>
<td style="text-align:right">Price: </td><td><input type="text" name="price'.$row['carIndex'].'" value="'.$row['price'].'"></td>
<td style="text-align:right">Mileage: </td><td><input type="text" name="mileage'.$row['carIndex'].'" value="'.$row['miles'].'"></td>
</tr>
<tr>
<td style="text-align:right">Max MPH: </td><td><input type="text" name="mph'.$row['carIndex'].'" value="'.$row['mph'].'"></td>
<td style="text-align:right">MPG: </td><td><input type="text" name="mpg'.$row['carIndex'].'" value="'.$row['mpg'].'"></td>
</tr>
</table>
</form>
</div> ';
}
?>
</form>
为之前选择的每条记录循环表单,以启用批量编辑。当我意识到我有多个具有相同名称的输入时,这一点就会引起我的注意:
<input type="text" name="model'.$row['carIndex'].'" value="'.$row['model'].'">
将目前已经厌倦的记录的主键放在它的名字的末尾。这似乎是一种合乎逻辑的方式。
但是现在我需要调用这些变量放在mysql查询中,我不知道怎么做,或者即使我可以。
我将所选记录保存在一个数组中,所以我有:
foreach ($postid as $carID)
{
$query = "stuff";
mysqli_query($db, $query);
}
每个循环都有$ carID,其中包含放在表单输入名称末尾的变量。
类似于:
$_POST['something'+$variable2]
是我能想到的全部但不起作用。
任何适用于我的整体代码的方法都是受欢迎的,而不仅仅是我已经解决的问题的解决方案。
答案 0 :(得分:1)
PHP使用点进行连接,而不是像Java和Javascript一样:
$_POST['something' . $variable2]
答案 1 :(得分:1)
实际上你的方式应该有效。只需将+
替换为.
中的$_POST['something'+$variable2]
即可。
我的提示是:在html中使用数组作为名称:
<input type="text" name="model[]" value="'.$row['model'].'">
在php-Side上,你现在可以循环遍历所有$_POST['model']
。
您也可以为html中的每个条目添加索引:
<input type="text" name="model['.$row['carIndex'].']" value="'.$row['model'].'">
答案 2 :(得分:0)
尝试这样的事情:
<form ...>
<?php
while($row = mysqli_fetch_assoc(...):
$index = $row['carIndex'];
?>
<input type="text" name="carmodel[<?php echo $index?>][model]" value="<?php echo $row['model'] ?>">
<?php endforeach; ?>
</form>
这样你就可以将$ _POST ['carmodel']中存储的数据作为carIndex值索引的数组,因为$ _POST中的数据结构是由输入名称定义的,这里你的名字就像carmodel [1 ] [模型]例如那么在帖子中它将在$ _POST ['carmodel'] [1] [model]
你也可以在这里阅读 How would I create this array structure in an HTML form?