【问题标题】:Select option only posts id, I need the value too选择选项仅发布 id,我也需要该值
【发布时间】:2020-09-11 04:06:56
【问题描述】:

我在一个简单的 PHP MySQL 项目中遇到了问题。当我尝试从选择选项中获取记录时,它只给了我 id。我也希望传递来自 select 的值。

<form class="form-style-9" method="POST" action="function.php?type=updatedistrict">``
    <ul>
    <li>ID:
      <input type="hidden" name="dist_id"  class="field-style field-full align-none"  value="<?php echo $ids;?>" readonly />

    </li>
    <li>District Name:
    <input type="text" name="name" class="field-style field-full align-none" value="<?php echo $names;?>" />
    </li>
    <li>Postal Code:
    <input type="text" name="code" class="field-style field-full align-none" value="<?php echo $codes;?>"/>
    </li>
    <li>Province
    <select name="province_id" class="form-control">
      <option value="">Select Province</option>
      <?php
      $sql = mysqli_query($conn, "SELECT id, province From province");
      $row = mysqli_num_rows($sql);
      while ($row = mysqli_fetch_array($sql)){
      echo "<option value='". $row['id'] ."'>" .$row['province'] ."</option>" ;
      }
      ?>
      </select>

    <li>
    <input type="submit" value="Update" name="submit" />
    </li>
    </ul>
    </form>

这是更新功能代码:

case 'updateprovince':
if (isset($_POST['submit'])) {
          $id = $_POST['dist_id'];
          $prov_id= $_POST['province_id'];
          

          $query=$conn->query("UPDATE province SET province='$prov_id' where id='$id'");
          if ($query) {
            echo '<script> window.location.replace("province.php");
                  </script>';
          }

          else
          {
            echo "issue";
          }
      }


break;

【问题讨论】:

  • 您到底想要哪里的值?连同id一起提交后?
  • 我想更新数据库中的数据,但是当我输入
  • 警告:您对SQL Injections 持开放态度,应该使用参数化的prepared statements,而不是手动构建查询。它们由PDOMySQLi 提供。永远不要相信任何形式的输入!即使您的查询仅由受信任的用户执行,you are still in risk of corrupting your dataEscaping is not enough!

标签: php html mysql select


【解决方案1】:

您可以通过这种方式发布您的省份名称而不是 id:

echo "<option value='". $row['province'] ."'>" .$row['province'] ."</option>" ;

然后您的$_POST['province_id'] 将包含省份值而不是当前 ID。

通过您的选项传递 id 和值(以防您需要保留 id 以进行其他处理)的一种方式是:

echo "<option value='". $row['id'] . '|'. $row['province'] ."'>" .$row['province'] ."</option>" ;

然后在提交之后,您只需将两者用“|”分开分隔符。

if (isset($_POST['submit'])) {
    $id = $_POST['dist_id'];
    $province = explode('|', $_POST['province_id']);
    $province_id = $province[0]
    $province_name = $province[1]

【讨论】:

  • 当我单击按钮和按钮链接时如何从数据库中获取数据我包含 update.php?id='.$row['did'].'& dname='.$行['dname'].'& pcode='.$row['pcode'].' & pid='.$row['pid'] 那么我如何获取 id 然后在更新页面中获取其他数据?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-12-24
  • 1970-01-01
  • 1970-01-01
  • 2019-12-30
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多