在HTML select中获取所选表的ID


Getting the ID of selected table in HTML select

我用Bootstrap/PHP/PDO/SQL为大学做网上商店作业。到目前为止,我已经制作了一个页面,允许我向数据库输入产品类别,该表名为"tuoteryhma",其中包含值"name"answers"id"。现在我正在制作一个页面,将一个产品添加到"产品"表中。

我试图通过一个基本的HTML表单来实现这一点,顶部是一个选择类,我已经将其链接到数据库"tuoteryhma",如下所示:

<?php
      try {
          $sqljr='SELECT * FROM tuoteryhma';
          $kyselyx=$tietokantajr->query($sqljr);
          while ($tietuejr = $kyselyx->fetch()) {
              print  '<option>' . $tietuejr['nimi'] . '</option>';          
          }
      } catch (PDOException $pdoexjr) {
          print "Tietokannan avaus epäonnistui." . $pdoexjr->getMessage();
      }
      ?>

它工作正常。现在我的问题是,我需要以某种方式获得所选"tuoteryhma"表的id值,并将id添加到代码的"添加产品"部分。tuoteryhma的ID是tuote表的外键。

我一直在尝试将代码线添加到while循环中,你可以在上面看到,比如:

 $id = $tietuejr['id']

然后将$id变量作为选择值,如下所示:

 <select class="form-control" name="tuoteryhmat" value="<?php $id ?>" id="tuoteryhmat">

然后在我的另一个try-catch语句中使用它,它会(如果有效的话)将新产品添加到产品表中,就像这样:

  <?php
if (isset($_POST['tuoteryhmat'])) {
try {

      $nimijr = filter_input(INPUT_POST,'nimi',FILTER_SANITIZE_STRING);
      $kuvausjr = filter_input(INPUT_POST,'kuvaus',FILTER_SANITIZE_STRING);
      $hintajr = filter_input(INPUT_POST,'hinta',FILTER_SANITIZE_NUMBER_INT);
      $idjr2 = filter_input(INPUT_POST, 'tuoteryhma_id');
          $kyselyjr2 = $tietokantajr->prepare("INSERT INTO
          tuote (nimi,kuvaus,hinta,tuoteryhma_id) VALUES  
    (:nimi,:kuvaus,:hinta,tuoteryhma_id:)");
          $kyselyjr2->bindValue(':nimi', $nimijr, PDO::PARAM_STR);
          $kyselyjr2->bindValue(':kuvaus', $kuvausjr, PDO::PARAM_STR);
          $kyselyjr2->bindValue(':hinta', $hintajr, PDO::PARAM_STR);
          $kyselyjr2->bindValue(':tuoteryhma_id', $idjr2, PDO::PARAM_STR);

          $kyselyjr2->execute();
          print "<p>VITTU</p>";
    print "<p>Tuote tallennettu onnistuneesti!</p>";
} catch (PDOException $pdoextuotejr) {
    print "Tuotteen tallennuksessa tapahtui virhe."
     . $pdoextuotejr->getMessage();
}

    }
?>

到目前为止运气不佳。如有任何帮助,我们将不胜感激,提前表示感谢。

*编辑抱歉,如果我在某些事情上不清楚,或者遗漏了一些重要的内容。这是一个完整的.php页面:http://pastebin.com/JRwi8B2p

问题已解决问题是我在循环中打印的选项字段没有值。我认为值本身将保存在select类value="中,但事实并非如此。因此,为了解决这个问题,我不得不更改while循环选项打印,以从数据库中获取值。

   echo "<option value='".$tietuejr['id']."' >".$tietuejr['nimi']."</option>";

感谢Codezilla向我指出这一点!