我有一个包含多个项目的表单,并且每个项目都有一个id,在提交时我希望能够获取被点击的项目的ID - 我尝试过使用js,例如:
<form method="post" action="add_item_cart.php">
<input type="hidden" id="item_id" name="item_id">
<input name="submit_item" id="btn_sub" onclick="document.getElementById('item_id').value = <?php echo '3'; ?>" type="submit" value="Add">
</form>
我希望能够在 add_item_cart.php 上获取此值:$item_id = $_POST["item_id"];
,但这似乎不起作用。
这是我的js语法的问题还是我的逻辑不可能解决这个问题?它是在更改值之前提交的吗?
编辑: 让我们看看我是否可以更好地解释自己,我想动态分配该隐藏值,想象我的表单有3个提交按钮(每个项目显示一个)。根据点击的那个,我想将项目的ID传递给我的隐藏字段,所以如果我点击button1 - $ _POST [“item_id”] = 1,button2 - $ _POST [“item_id”] = 2 ...等
这是我的实际表格(非简化示例)
<form method="post" action="add_item_cart.php">
<table style="width:600px">
<tr>
<?php foreach ($items as $item): ?>
<td>
<center>
<span style="font-size:20px"><?php echo $item["item_name"] ?></span><br/>
€<?php echo $item["price"] ?><br/>
Quantidade: <input type="text" value="1" style="width:30px"><br/>
<input type="hidden" id="item_id" name="item_id">
<input name="submit_item" id="btn_sub" onclick="document.getElementById('item_id').value = <?php echo $item["id"]; ?>" type="submit" value="Adicionar">
</center>
</td>
<?php endforeach; ?>
</tr>
</table>
</form>
答案 0 :(得分:0)
<强>更新强>
使用普通按钮代替提交按钮,并使用javascript提交表单。
<form method="post" name="f1" action="add_item_cart.php">
<input type="hidden" id="item_id" name="item_id">
<input name="submit_item" id="btn_sub" onclick="document.getElementById('item_id').value = <?php echo '3'; ?>; document.f1.submit();" type="button" value="Add">
答案 1 :(得分:0)
当您的表单发布并且您想要首先在add_item_cart.php上收集item_id值时,您需要实际为id分配一个值,如(假设item_id是一个php变量)。 id仅用于设置css编辑而不是值...
<input type="hidden" id="item_id" value="<?php echo $item_id; ?>" name="item_id">
您不能为该值设置id ='',因为'value'是值。
然后您可以使用以下内容在其他页面上获取该值:
<?php
if(isset($_POST['item_id'])){
$item_id = $_POST['item_id'];
}
?>
如果您想在发布后编辑变量,具体取决于您点击的按钮,可以尝试。
<input name="submit_item1" id="btn_sub" name="button1" type="submit" value="Add">
<input name="submit_item2" id="btn_sub" name="button1" type="submit" value="Add">
<input name="submit_item3" id="btn_sub" name="button1" type="submit" value="Add">
然后,您可以在页面顶部执行此操作。
<?php
if(isset($_POST['submit_item1'])){
$item_id = 1;
}
if(isset($_POST['submit_item2'])){
$item_id = 2;
}
if(isset($_POST['submit_item3'])){
$item_id = 3;
}
?>
如果您要从一系列项目中创建表单,您可以执行类似的操作(假设您以某种方式具有与这些项目关联的ID;我需要了解有关您如何制作项目列表的更多信息。但它会通常这样做。
<?php
foreach($item_array as $item){
?>
<form method="post" action="add_item_cart.php">
<input type="hidden" id="item_id" name="item_id" value="<?php echo $item['id']; ?>">
<input name="submit_item" id="btn_sub" type="submit" value="Add">
</form>
<?php
}
?>
然后在你的页面顶部你可以得到$ _POST ['item_id']并且因为该值是动态设置的,所以你不需要任何条件,你可以获得该值并运行任何查询。