2013-01-12 40 views
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 ...等

這裏是我的實際形式(非簡單的例子)

<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

這是一個簡化的示例?您通過PHP傳遞的任何值都像'<?php echo「3」; ''也可以放在隱藏的輸入值開始... –

+0

是否有一個原因,您無法將該值添加到頁面加載的隱藏輸入值? - '」>' – Sean

+0

只是一個簡單的例子,我從數據庫中抓取。 –

回答

0

當你的形式張貼,你想收集add_item_cart.php的ITEM_ID價值首先你需要實際值分配給ID爲(假設ITEM_ID是一個PHP變量)。該編號只是用於設置的CSS編輯不是一個值...

<input type="hidden" id="item_id" value="<?php echo $item_id; ?>" name="item_id"> 

你不能有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」],並因爲該值是動態設置的,你不需要任何條件語句,你可以只獲取該值並運行任何查詢。

+0

讓我們看看如果我能更好地解釋自己,我想動態地分配隱藏的值,想象我的表單有3個提交按鈕(每個項目顯示一個按鈕)。取決於點擊的項目,我想將項目的ID傳遞給我的隱藏字段,所以如果我點擊button1 - $ _POST [「item_id」] = 1,button2 - $ _POST [「item_id」] = 2 ...等 –

+0

哦,如果你這樣做,然後不需要一個隱藏的領域只是找出哪個按鈕被按下,然後設置值...我會顯示上面的一個例子。 –

+0

是的,我想過這個,但是我希望這個代碼儘可能動態,就像能夠插入更多的項目到數據庫中一樣,並且不必繼續添加按鈕條件... –

0

UPDATE

使用正常的按鈕而不是提交按鈕,使用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"> 

+0

查看我對德文答案的回覆,我也會更新這個問題。 –

+0

@JoaoFerreira檢查這個 – Nauphal

+0

沒有從這個$ _POST輸出。 –