2015-10-21 2 views
0

Я создаю форму, где он позволяет пользователю вводить количество строк, которые они хотели бы иметь в форме. Затем с соответствующими строками вы можете выбрать Продукт с Product_ID & Product_Name из раскрывающегося списка. С выбранным элементом он должен вытащить Product_Cost из таблицы и заполнить текстовое поле Unit Price. Кажется, я не могу получить текстовое поле с правильными данными. Оператор My if if (isset($_POST['product' . $i])){, похоже, работает неправильно, он работает так, как будто утверждение было ложным. Я пытаюсь сказать: «Если в поле выбора есть опция, выберите выбранную опцию и найдите соответствующую строку в базе данных и возьмите цену, найденную в этой строке для этого продукта, и заполните текстовое поле цены единицы».Как заполнить текстовое поле соответствующей информацией, связанной с элементом, выбранным из выпадающего списка в PHP?

<? require_once("connect_to_DB.php"); //inserts contents of this file here ?> 

<!DOCTYPE html> 
<html lang="en"> 
<head> 
    <title>Order Form</title> 
    <meta charset="utf-8"> 

</head> 
    <body> 

     <? 

     connectDB(); 

     $sql = "SELECT * FROM product"; 
     $sql2 = "SELECT DISTINCT emp_id, emp_fname, emp_lname FROM employee"; 
     $sql3 = "SELECT DISTINCT status_id FROM salesorder ORDER BY status_id asc"; 
     $sql4 = "SELECT * FROM salesorder ORDER BY order_id desc"; 

     $result = mysqli_query($db, $sql) or die("SQL error: " . mysqli_error()); 
     $result2 = mysqli_query($db, $sql2) or die("SQL error: " . mysqli_error()); 
     $result3 = mysqli_query($db, $sql3) or die("SQL error: " . mysqli_error()); 
     $result4 = mysqli_query($db, $sql4) or die("SQL error: " . mysqli_error()); 

     //This is for the options in the product list box 
     $options = '<option value="selectProduct">Select Product</option>'; 

     while($row = mysqli_fetch_array($result,MYSQLI_NUM)){ 

      $options .= '<option value="' . $row[0] . '">' . $row[0] . ' - ' . $row[2] . '</option>'; 
     } 

     $row2 = mysqli_fetch_array($result2); 
     $row3 = mysqli_fetch_array($result3); 
     $row4 = mysqli_fetch_array($result4); 

     ?> 

    <div id="order-wrap"> 
     <form method="post" action="example.php"> 
      <table class="orderInfo"><br> 
       <tr> 
        <th class="textCol">Product Rows:</th> 
        <td class="inputCol"><input type="text" name="rows"></td> 
        <td><input class="update" type="submit" name="update" value="Update"></td> 
        <td class="inputCol"></td> 
       </tr> 
      </table> 
     </form><!-- Order Rows --> 
     <form class="orderform" action ="order-report.php" METHOD = "post"> 
      <h2>Order Form</h2> 

      </table> 

     <!-- Where the product rows input show go ??? --> 
     <table class="bottomTable"> 
      <tr> 
       <th class="textCol">Product</th> 
       <th class="textCol">Quantity</th> 
       <th class="textCol">Unit Price</th> 
       <th class="textCol">Total Price</th> 
      </tr> 

     <? 
      if (isset($_POST['update'])) 
      { 
       //Execute this code if the update button is clicked. 
       $num = $_POST['rows']; 

       for ($i=0; $i<$num; $i++) { ?> 

        <tr> 
         <td class="inputCol2"> 
          <select name="'product<?= $i ?>'"> 
           <? 
            echo $options; 
           ?> 
          </select> 
         </td> 
         <td class="inputCol2"><input type="text" name="'quantity<?= $i ?>'" ></td> 

         <? if (isset($_POST['product' . $i])){ ?> 

          <td class="inputCol2"><input type="text" name="'unit<?= $i ?>'" value="<?= $row[3] ?>" placeholder="$" ></td> 

         <? } else { ?> 

          <td class="inputCol2"><input type="text" name="'unit<?= $i ?>'" value="" placeholder="$"></td> 

         <? } ?> 

         <td class="inputCol2"><input type="text" name="'total<?= $i ?>'" placeholder="$"></td> 
        </tr> 
       <? } ?> 
        <tr> 
         <td class="textCol"></td> 
         <td class="textCol"></td> 
         <td class="textCol">Total Order:</td> 
         <td class="inputCol2"><input type="text" name="totalfinal" placeholder="$"></td> 
        </tr> 
       </table> 
       <input class="submit" type="submit" value="Submit" name="orderSubmit"/> 
      </form> 
      <? } else {?> 
        <tr> 
         <td class="textCol"></td> 
         <td class="textCol"></td> 
         <td class="textCol">Total Order:</td> 
         <td class="inputCol2">$<input type="text" name="totalfinal"></td> 
        </tr> 
       </table> 
       <input class="submit" type="submit" value="Submit" name="orderSubmit"/> 
      </form> 

      <? } ?> 
     <? 
      mysqli_free_result($result); 
      mysqli_free_result($result2); 
      mysqli_free_result($result3); 
      mysqli_free_result($result4); 
      mysqli_close($db); 
     ?> 
    </div> 
</body> 

+0

Если я не недоразумение, вы хотите, чтобы с помощью 'onchange' триггер на первом поле выбора для динамического заполнения или выбрать что-то в другом выберите коробка. Вы бы сделали это с помощью JS/jQuery. –

+0

Я понимаю, что это было бы намного проще с Javascript и jQuery, но я учу использовать PHP для работы с базой данных. Я пытаюсь понять, как я буду заниматься этим. – Haley

ответ

0

Там, как представляется, некоторые синтаксические ошибки в там, например:

<select name="'product<?= $i ?>'"> 
    <? 
     echo $options; 
    ?> 
</select> 

Там, кажется, несколько случаев, в которых используется этот тип кавычек - я думаю, что они должны чтобы больше походить:

<select name="product<?= $i ?>"> 
    <? 
     echo $options; 
    ?> 
</select> 

Кроме того, в нескольких местах вы не используете правильный openi ng для блоков php, хотя кто-то может указать на разные. Как правило, они должны быть:

<?php 
    /* statements */ 
?> 

или

<?="print out this string";?> 
Смежные вопросы