簡體   English   中英

HTML隱藏的輸入無法在表格內部工作

[英]HTML Hidden input not working table insided form

我需要回顯$_POST['selected_for_del']但問題是我沒有得到正確的ID,該ID放置在html隱藏的輸入中。 我究竟做錯了什么? 隱藏的輸入中有問題嗎?

<?php
$q = mysqli_query($conn,"SELECT * FROM news_post LIMIT 30");
echo '
<form action="" method="post">
<table style="width:100%">
  <tr>
    <th>POST ID</th>
    <th>Post Title</th> 
    <th>Menu Name</th>
    <th>Is it event?</th>
    <th>Is it top?</th>
    <th>Is it roling?</th>
    <th>Delete Post</th>
  </tr>
  ';
while ($row = mysqli_fetch_array($q)) {
    $post_id = $row['post_id'];
    $post_title = $row['post_title'];
    //$post_text = $row['post_text'];
    $menu_name = $row['menu_name'];
    $is_event = $row['is_event'];
    $is_roling = $row['is_roling'];
    $is_top = $row['is_top'];
    $img_name = $row['img_name'];

    //return_yes_no_on_true_false($is_event);
echo '
    <tr>
    <td>'.$post_id.'</td>
    <td><a href="post_id='.$post_id.'">'.$post_title.'</a></td> 
    <td>'.$menu_name.'</td>
    <td>'.return_yes_no_on_true_false($is_event).'</td>
    <td>'.return_yes_no_on_true_false($is_top).'</td> 
    <td>'.return_yes_no_on_true_false($is_roling).'</td>
    <td><input type="hidden" name="selected_for_del" value="'.$post_id.'"></td>
    <td><br><input type="submit" name="submit_delete" value="Delete it"><br></td>
  </tr>
';
}
echo '</table></form>';


if (isset($_POST['submit_delete'])) {
    echo $_POST['selected_for_del'];
}

?>

您只有一個表單,因此在提交表單時,您將提交所有隱藏的輸入。

由於您想知道與單擊的“提交”按鈕關聯的輸入,並且由於同一行上沒有其他表單控件,因此有兩個選項:

忘記隱藏的輸入

而是將數據存儲在“提交”按鈕上。

<button name="selected_for_del" value="<?=htmlspecialchars($post_id);?>"> Delete it</button>

將表格放入單元格

不要在整個桌子周圍放表格。 在保存該按鈕的表格單元內,在每個提交按鈕周圍放置一個單獨的表單。 將隱藏的輸入移至該單元格。

<td>
    <form method="post">
        <input type="hidden" name="selected_for_del" value="<?=htmlspecialchars($post_id);?>">
        <input type="submit" name="submit_delete" value="Delete it">
    </form>
</td>

嘗試將表單放入循環中...打印出來時,該表單中有許多具有相同名稱和不同值的隱藏輸入。

您的問題是表單在循環之外,並且如果所有行的隱藏輸入都相同,則名稱將為循環外,結果是您將始終刪除最后一行。

這不是最佳的解決方案,但我建議以下幾點:

1)刪除隱藏的輸入。

2)更換:

<input type="submit" name="submit_delete" value="Delete it">

<button type="submit" name="selected_for_del" value=".$post_id.">'Delete it'</button>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM