【问题标题】:Inserting dynamic information into the database (dynamic drop-down menu)将动态信息插入数据库(动态下拉菜单)
【发布时间】:2013-09-13 14:30:26
【问题描述】:

我有这段代码,它从数据库中获取类别并将它们显示在下拉菜单中。 Now, what I want to do, Is when something is selected and the button isset, get the ID of that category (table: categories ,row category_id) then submit it into (table: posts ,row category_id)。我不知道如何获取在下拉列表中选择的类别的 ID。谢谢。
$db 变量是数据库连接。

这是我到目前为止所得到的。这是向数据库提交数据:

include('../includes/db_connect.php');
if(isset($_POST['submit'])){
    $newTitle = $_POST['newTitle'];
    $newPost = $_POST['newPost'];
    $newCategory = $_POST['newCategory'];
    $my_date = date("Y-m-d H:i:s");
    if(!empty($newPost))
        if(!empty($newTitle)){
    $sql="INSERT INTO posts  (title, body, category_id)
VALUES('$newTitle', '$newPost', '$newCategory')";
    $query = $db->query($sql);
    if($query){
            echo "Post entered to database";
        }else{
            echo "Error Submitting the data";
        }
    }
}

这是选择:

<textarea name="newPost" cols="176" rows="25"/></textarea><br>
<select name=""="newCategory" id="newCategory">
    <option value="0">Select category</option>
<?php
    $result = mysqli_query($db, "SELECT * FROM categories");
    if ( $result ) {
        while( $row = mysqli_fetch_array($result, MYSQLI_ASSOC) ) {

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

        }
    } else {
        echo 'Couldn\'t fetch Categories from MySQL.';
    }
?>

Ps - 我知道这很容易注射,你不需要告诉我,请回答问题:)

【问题讨论】:

  • 不要在选择器中使用value="&lt;name&gt;",而是使用value="&lt;id&gt;"。
  • 你在上面的代码 sn-p 中有一个错误...name=""="newCategory" 应该是 name="newCategory"

标签: php mysql


【解决方案1】:

您很可能只需要更改此行,并将 value 设置为类别主键,例如 id 或其他名称。

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

否则在提交后您必须运行 mysql 查询以通过搜索 category='$newCategory' 的位置来找到 id

【讨论】:

  • 查看生成的html源码。选项值中的所有 id 是否正确?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-11-05
  • 1970-01-01
  • 2018-09-29
  • 2012-08-29
相关资源
最近更新 更多