好的,所以我从一个mysql表中提取了一个PHP数组。该数组是根据表中经常添加和删除项的项生成的。我在项目名称“提交”旁边有一个按钮。我希望按钮能够识别同一索引中的项目。然后它会将项目提交的项目传递给新表。
<form class="omb_loginForm" action="inc/contribute_item.php" autocomplete="off" method="POST">
<?php
$item_array;
$index = 0;
$index_2 = 1;
$r = "r";
$b="b";
foreach ($item_array as $id_array){ ?>
<tr id="<?php echo $r.$index_2; ?>">
<td><?php echo $item_array[$index] ?></td>
<td> <?php echo $quantity_array[$index]; ?></td>
<td> <?php echo $price_array[$index];
$selectedItem = $item_array[$index]; ?>
<input type='hidden' name='hidden' value='<?php $selectedItem ?>'>
<input type='submit' name='submit' value"submit">
</form> </td>
<?php $index++;
$index_2++; ?>
</tr>
这是PHP:
if ($_POST['submit']) {
$connect = new mysqli(DB_HOST, DB_USER, DB_PASS, DB_NAME);
$user_contrib = $_SESSION['first_name'];
$selected = $selectedItem;
$connect->query("UPDATE `items` SET `purchased_by` = '$user_contrib' WHERE `name` = '$selected'");
}
答案 0 :(得分:2)
您已走上正轨,只需确保您的开启和关闭html代码已正确对齐。
如果您想通过隐藏输入传输所选值,请确保每个输入都在其自己的表单中以及相应的提交按钮:
<!-- row 1: -->
<form action="inc/contribute_item.php" method="post">
<input type="hidden" name="myValue" value="1"/>
<input type="submit" value="submit"/>
</form>
<!-- row 2: -->
<form action="inc/contribute_item.php">
<input type="hidden" name="myValue" value="2"/>
<input type="submit" value="submit"/>
</form>
然后在PHP中使用$_POST['myValue']
访问所选值。
不要嵌套表格标签。并且不要在表格,tr,td标签之间放置表格标签。按照打开它们的顺序关闭它们。
更具体地说,这就是你的循环的样子:
<!-- don't start your form here -->
<table>
<?php foreach(...) { ?>
<tr>
<td>...</td>
<td>
<form action="inc/contribute_item.php" method="post">
<input type="hidden" name="myValue" value="<?= $index ?>"/>
<input type="submit" value="submit"/>
</form>
</td>
</tr>
<?php } ?>
</table>
另一种选择是在每一行中使用<input type="radio" ... />
个元素。这样您就可以只使用一个全局表单:
<form action="inc/contribute_item.php" method="post">
<table>
<?php foreach(...) { ?>
<tr>
<td>...</td>
<td>
<input type="radio" name="myValue" value="<?= $index ?>"/>
</td>
</tr>
<?php } ?>
</table>
<input type="submit" value="submit"/>
</form>