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>

add_item_cart.php$item_id = $_POST["item_id"];でこの値を取得できるようにしたいのですが、これは機能していないようです。

これは私のjs構文の問題ですか、それとも私のロジックはこの問題を解決するのに妥当ではありませんか?値を変更する前に送信していますか?

編集:自分自身をよりよく説明できるかどうかを見てみましょう。その隠された値を動的に割り当てたいと思います。フォームに3つの送信ボタン(表示されるアイテムごとに1つ)があると想像してください。クリックしたものに応じて、アイテムの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/>
                            €&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">

'value'は値であるため、値にid=''を設定することはできません。

次に、他のページでその値を取得できます。

<?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 に答える