javascript - 将下拉数据从一个表插入到另一个表

标签 javascript php mysql pdo

我有一个仅包含 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>

添加产品.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
    ));
}

?>

==> 我知道代码中存在一些拼写错误(通常是类别/类别),但它始终保持一致,

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

最佳答案

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

就您而言,错误就在这里,因为您将 $row['id'] 放入 value

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

因此,如果您想要名称而不是id,则必须更改选项值

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

关于javascript - 将下拉数据从一个表插入到另一个表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31505465/

相关文章:

javascript - 平台工具\adb.exe : Comman d failed with exit code 3221226356

javascript - 如何将 iframe 内的 div 转换为 svg 代码?

javascript - 条件渲染,重复次数更少

php - mysql_real_escape_string() 是否完全防止 SQL 注入(inject)?

mysql - InnoDB "autoextend"函数

javascript - Sencha touch 2 如何在 View 中引用列表项?

php - Mysql 查询使用现在和上周之间的日期

php - Ctrl + 键不适用于我的 PHPStorm 应用程序

c# - 如何使用 MySqlDataReader 从数据库中检索值?

java - 字符串到 joda LocalDate,格式为 "dd-MMM-yy"