2015-11-21 3 views
1

Я делаю онлайн-заказ для университета с помощью Bootstrap/PHP/PDO/SQL. До сих пор я сделал страницу, которая позволяет мне вводить категорию продукта в базу данных, таблица называется «tuoteryhma», которая содержит значения «имя» и «id». Теперь im делает страницу, которая добавит продукт в «product» -table.Получение идентификатора выбранной таблицы в HTML select

Im пытается сделать это, с помощью основной формы 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(); 
     } 
     ?> 

И это работает правильно. Теперь моя проблема в том, что мне нужно как-то получить значение id выбранной таблицы «tuoteryhma» и добавить id в часть «добавить продукт» в код. Идентификатором tuoteryhma является внешний ключ таблицы туотетов.

Я пытался добавить codelines в то время цикла вы можете видеть выше, как:

$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

'value =" "Вам нужно повторить это. 'value =" "' –

+0

О, не заметил этого раньше. Изменено, но все равно не работает. – Jantte

+0

Трудно сказать, используете ли вы какой-то метод POST здесь. В вашем вопросе нет ничего, что предполагает 'method =" post "или использование формы, или jQuery' $ .post'. проверьте наличие ошибок и проверьте свою консоль, если вы используете JS/Ajax. –

ответ

0

Устранена Проблема заключалась в том, что поля параметров я печатаю в то время как цикл не проводить никакого значения. Я думал, что само значение будет удерживаться в классе select = "", что не было. Поэтому, чтобы решить эту проблему, мне пришлось изменить мою опцию печати во время цикла, чтобы принять значение из базы данных.

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

Спасибо Codezilla указывают на это мне!


Смежные вопросы