Php 单击“提交”更改隐藏字段值

Php 单击“提交”更改隐藏字段值,php,javascript,Php,Javascript,我有一个包含多个项目的表单,每个项目都有一个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.getElementByI

我有一个包含多个项目的表单,每个项目都有一个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>

更新

使用普通按钮而不是提交按钮,并使用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">


当表单发布后,您希望首先在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">

如果您想在post后编辑变量(取决于您按下的按钮),可以尝试

<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
}
?>


这是一个简化的示例吗?您通过PHP传递的任何值(如
)都可以放在隐藏输入的值中开始…有什么原因不能在页面加载时将该值添加到隐藏输入值中吗?-
只是一个简化的示例,我实际上是在尝试回显从数据库获取的id例如,让我们看看我是否能更好地解释自己,我想动态分配隐藏值,假设我的表单有3个提交按钮(每个显示的项目一个)。根据单击的按钮,我想将项目的id传递给我的隐藏字段,因此如果我单击button1-$\u POST[“item\u id”]=1,button2-$\u POST[“item\u id”]=2…etcOh如果你这样做,那么你甚至不需要一个隐藏的字段,只要找出哪个按钮被按下,然后设置值…我将展示上面的一个例子。是的,我考虑过这一点,但我希望这段代码尽可能动态,比如能够在数据库中插入更多的项目,而不必不断添加按钮条件ns…哦,好吧…我不知道这是一个你正在导入的列表好吧…我将做一个动态示例…在这个问题的早期,我考虑了多种形式,这是一个解决方案-只是不是最干净的(在我看来),但我似乎不得不这么做。谢谢你的帮助!好的,请检查我对德文回答的答复,我也会更新这个问题。这篇文章也没有来自$\u的输出。
<?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;
}
?>
<?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
}
?>