2015-07-19 167 views
0

我有一个表格,它只包含id &类别, 然后我有一个下拉框使用类别列填充表格。 下一步是当点击提交按钮时,它将所有数据发送到另一个表[product_table],所有数据提交到产品表中,而不是插入类别名称插入它的id。 我试过多个修补程序无济于事,我想最简单的方法是将输出类别'1','2','3'...并使用查询将其转换为'帽子',衬衫',鞋'...使用category_table。 我不是100%确定如何虽然做到这一点,从一个表格插入下拉数据到另一个表格

的index.php

<div id="addProduct">   
    <?PHP require_once("addProduct.php"); ?>     
      <div id="pageSubTitle" style="display:block">    
       <form method="post" action=""> 
        <h2>Add a Product</h2>      
         <table> 
          <tr> 
           <td><label>Product Name: </label> <input type="text" id="productName" name="productName" required></td> 
            <td><label id="categoryLabel"> Catagory: </label> 
            <?php 
             mysql_connect("localhost", "root","") or die(mysql_error()); 
             mysql_select_db("web_scripting") or die(mysql_error()); 

             $query = "SELECT id,category FROM catagory_table ORDER BY category ASC"; 
             $result = mysql_query($query) or die(mysql_error()."[".$query."]"); 
            ?>         
            <select type="text" id="category" name="category"> 
            <?php 
             while ($row = mysql_fetch_array($result)) 
             { 
              echo "<option value='".$row['id']."'>'".$row['category']."'</option>"; 
             } 
            ?> 
            </select><p id="refreshCatagoryOnNewProduct"> New catagory not appearing?<br /> <a href="index.php">Click Here</a></p></td> 
          </tr>        
          <tr> 
           <td><label>Stock: </label> <input type="number" id="stock" name="stock" required></td> 
           <td><label id="costLabel">Cost: </label> <input type="text" id="cost" name="cost" required></td> 
          </tr>        
          <tr> 
           <td><label>Description: </label> <textarea type="text" id="description" name="description" cols="40" rows="5" maxlength="250" placeholder="Enter Description Here&#10;(Max 250 Characters...)" required></textarea></td> 
           <td></td>         
          </tr>        
          <tr> 
           <td><input id="productSubmit" type="submit" value="Add Product" onclick="submitProduct()"></td> 
          </tr> 
         </table>        
       </form>     
      </div>    
    </div> 

addProduct.php

<?PHP 

$db_host = "localhost"; 
$db_name = "web_scripting"; 
$db_root = "root"; 
$db_pass = ""; 

$odb = new PDO("mysql:host=$db_host;dbname=$db_name", $db_root, $db_pass); 

if(isset($_POST['productName'])) { 
    $productName = $_POST['productName']; 
    $categoryName = $_POST['category']; 
    $stock = $_POST['stock']; 
    $cost = $_POST['cost']; 
    $description = $_POST['description']; 
    $q = "INSERT INTO Product_table(name, category, stock, cost, description) VALUES(:name, :category, :stock, :cost, :description);"; 
    $query = $odb->prepare($q); 
    $results = $query->execute(array(
     ":name" => $productName, 
     ":category" => $categoryName, 
     ":stock" => $stock, 
     ":cost" => $cost, 
     ":description" => $description 
    )); 
} 

?> 

==>我知道有几个拼写错误的代码(通常是category/catagory),但它始终如一,

任何帮助/建议将不胜感激

+1

它插入'id',就像在设置选项值到'id' - >'echo'

回答

0

select元素用于创建下拉列表,但元素内的option value=""标签用值定义列表中的可用选项。

在你的情况下,错误是在这里,因为你是把$row['id']价值

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

所以,如果你想name代替id,必须改变option value

echo "<option value='".$row['category']."'>'".$row['category']."'</option>"; 
相关问题