0

我有一个包含多个项目和每个项目的 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>

我希望能够获取这个值:$item_id = $_POST["item_id"];add_item_cart.php上,但这似乎不起作用。

这是我的 js 语法的问题还是我的逻辑无法解决这个问题?是否在更改值之前提交?

编辑:让我们看看我是否可以更好地解释自己,我想动态分配隐藏的值,假设我的表单有 3 个提交按钮(每个显示的项目一个)。根据点击的那个,我想将项目的 id 传递给我的隐藏字段,所以如果我点击 button1 - $_POST["item_id"]=1, button2 - $_POST["item_id"]=2... ETC

这是我的实际形式(非简化示例)

<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/>
                            €&lt;?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>
4

2 回答 2

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">

于 2013-01-12T18:54:44.800 回答
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'] 并且由于该值是动态设置的,您不需要任何条件,您可以获取该值并运行任何查询。

于 2013-01-12T18:54:45.100 回答