在HTML中获取所选表的ID选择

时间:2015-11-21 16:13:36

标签: php sql html5 twitter-bootstrap pdo

我使用Bootstrap / PHP / PDO / SQL为大学进行在线商店分配。到目前为止,我已经创建了一个允许我向数据库输入产品类别的页面,该表名为“tuoteryhma”,其中包含值“name”和“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添加到代码的“add product”部分。 tuoteryhma的ID是tuote table的外键。

我一直在尝试将代码行添加到您可以在上面看到的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

1 个答案:

答案 0 :(得分:0)

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

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

感谢 Codezilla 向我指出这一点!