PHP选项值基于数据库表

时间:2015-11-19 07:37:31

标签: php

我现在的问题: 一旦我回应了数据库中的价值,那就好了。但是当我提交表单时,我得到了所选选项的空值。

任何人都可以提供帮助。我尝试在价值代码中使用{}但它没有用。

我想要的是什么: 在数据库中设置所选选项的值,以将其插入另一个表中。

<select class="form-control" name="CenterTO" id="CenterTO">
  <option value="" selected>--select-- </option>
<?php
require("inc/DB.php");
$query = "SELECT centerName FROM jeCenter";
$result = mysql_query($query);
$num_rows = mysql_num_rows($result);
if ($num_rows > 0) {
while($row = mysql_fetch_array($result)){                                                               
    echo '<option value="'.$row['centerName'].'">'.$row['centerName'].'</option>';

     }


} else {
    echo '<option>No data</option>';
}





mysql_close();

?> 

4 个答案:

答案 0 :(得分:0)

你必须&#34;扩展&#34;您的选择查询包含行的ID,然后使用$ row [&#39; id&#39;](或您的ID列的名称)而不是$ row [&#39; id。&#39;] option元素的value参数,而不是&#39; centerName&#39;。如果我理解你想要的东西,那就应该是它。

编辑:并且切换到mysqli_,mysql_已被弃用。

答案 1 :(得分:0)

试试这个

<select class="form-control" name="CenterTO" id="CenterTO">
    <option value="0" selected>--select--</option>
    <?php

        require("inc/DB.php");
        $query = "SELECT centerName FROM jeCenter";
        $result = mysql_query($query);
        $count = count($result);

        if (!empty($count)) {
            while($row = mysql_fetch_array($result))
            {              
                $name = $row['centerName'];                                                
                echo "<option value='$name'> $name </option>";
            }
        } else {
            echo '<option>No data</option>';
        }

        mysql_close();
    ?> 
</select>

答案 2 :(得分:0)

尝试这样写:

echo '<option value="',$row["centerName"],'">',$row["centerName"],'</option>';

答案 3 :(得分:0)

警告:

请不要使用mysql_数据库扩展,它们在PHP 5.5.0中已弃用,并已在PHP 7.0.0中删除。请改用 mysqli PDO 扩展程序。

<强>解决方案

我使用mysqli扩展程序重新创建了您的问题并增强了您的代码,并且它运行正常。看看下面的代码,

<?php

    if(isset($_POST['submit'])){
        // display submitted option
        echo $_POST['CenterTO'];
    }

?>

<html>
<head>
    <title>Page Title</title>
</head>

<body>

    <?php

        $host = "localhost";
        $username = "root";
        $password = "";
        $dbName = "stackoverflow";

        // Open a new connection to the MySQL server
        $connection = new mysqli($host, $username, $password, $dbName);

        // Check connection
        if($connection->connect_errno){
            // error
            die('Connect Error: ' . $connection->connect_error);
        }

        // Execute query
        $result_set = $connection->query("SELECT centerName FROM jeCenter");

    ?>

    <form action="form_page.php" method="POST">
    <select name="CenterTO">
        <option value="" selected>--select-- </option>
    <?php
        // Check if number of rows is greater than zero or not
        if($result_set->num_rows > 0){
            // Loop through each record
            while($row = $result_set->fetch_assoc()){
                ?>
                <option value="<?php echo $row['centerName']; ?>"><?php echo $row['centerName']; ?></option>
                <?php
            }
        }else{
            ?>
            <option value="none">No data</option>
            <?php
        }
    ?>
    </select>
    <input type="submit" name="submit" value="Submit" />
    </form>

</body>
</html>

<?php

    // Close connection
    $connection->close();

?>