php - 从 PHP 的输入中获取特定的数组值

标签 php mysql arrays mysqli

好的,我有一个从 mysql 表中提取的 PHP 数组。该数组是根据表中频繁添加和删除项目的项目生成的。项目名称旁边有一个按钮“提交”。我希望该按钮能够识别同一索引中的项目。然后它将把提交的项目传递到一个新表。

<form class="omb_loginForm" action="inc/contribute_item.php" autocomplete="off" method="POST">
<?php
     $item_array;
     $index = 0;
     $index_2 = 1;
     $r = "r";
     $b="b";
     foreach ($item_array as $id_array){ ?>
        <tr id="<?php echo $r.$index_2; ?>">
        <td><?php echo $item_array[$index] ?></td>
        <td> <?php echo $quantity_array[$index]; ?></td>                   
        <td> <?php echo $price_array[$index]; 
             $selectedItem = $item_array[$index]; ?>
        <input type='hidden' name='hidden' value='<?php $selectedItem ?>'>
        <input type='submit' name='submit' value"submit">
     </form> </td>
  <?php $index++;
        $index_2++; ?>
       </tr>

这是 PHP:

if ($_POST['submit']) {
    $connect = new mysqli(DB_HOST, DB_USER, DB_PASS, DB_NAME);
    $user_contrib = $_SESSION['first_name'];
    $selected = $selectedItem;
    $connect->query("UPDATE `items` SET `purchased_by` = '$user_contrib' WHERE `name` = '$selected'");

}

最佳答案

您的方向是正确的,只需确保开始和结束 html 标记正确对齐即可。

每行使用一个表单

如果您想通过隐藏输入传输所选值,请确保每个输入都位于其自己的表单内以及相应的提交按钮:

<!-- row 1: -->
<form action="inc/contribute_item.php" method="post">
  <input type="hidden" name="myValue" value="1"/>
  <input type="submit" value="submit"/>
</form>

<!-- row 2: -->
<form action="inc/contribute_item.php">
  <input type="hidden" name="myValue" value="2"/>
  <input type="submit" value="submit"/>
</form>

然后在 PHP 中使用 $_POST['myValue'] 访问所选值.

不要嵌套表单标签。并且不要将表单标签放在 table、tr、td 标签之间。按照打开它们的顺序关闭它们。

更具体地说,您的循环如下所示:

<!-- don't start your form here -->
<table>
  <?php foreach(...) { ?>
  <tr>
    <td>...</td>
    <td>
      <form action="inc/contribute_item.php" method="post">
        <input type="hidden" name="myValue" value="<?= $index ?>"/>
        <input type="submit" value="submit"/>
      </form>
    </td>
  </tr>
  <?php } ?>
</table>

使用单选按钮或复选框

另一种选择是使用 <input type="radio" ... />每行中的元素。这样您就可以只使用一个全局表单:

<form action="inc/contribute_item.php" method="post">

<table>
  <?php foreach(...) { ?>
  <tr>
    <td>...</td>
    <td>
      <input type="radio" name="myValue" value="<?= $index ?>"/>
    </td>
  </tr>
  <?php } ?>
</table>

<input type="submit" value="submit"/>
</form>

关于php - 从 PHP 的输入中获取特定的数组值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26442104/

相关文章:

java - java中内部类初始化的泛型数组

php - Raspberry Pi 是否足够强大来运行 Laravel 应用程序?

mysql - 尝试调用 ShellExecute 来运行 Mysql 和 sql 脚本

java - JDBC 删除条目 - 主键/CONCUR_UPDATABLE 问题

php - 数据库搜索减去 "The"前缀

java - 在运行时从上传的文件覆盖 JCombox 值

python - 根据2列值取numpy数组的Unique。

php - 在 PHP 中检查字符串是否以数字开头

php - 使用 PDO 加载具有特定列的 csv 文件

php - sudo_exec 什么都不返回