【问题标题】:PHP option value based on database table基于数据库表的PHP选项值
【发布时间】:2015-11-19 07:37:30
【问题描述】:

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

谁能帮忙。我尝试在他的值代码中使用 {},但它不起作用。

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

<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();

?> 

【问题讨论】:

  • 如果您选择任何选项,$_POST['CenterTO'] 是否为空?请添加您正在处理表单数据的 PHP 代码部分。
  • "我想要什么:将所选选项的值设置为数据库中的值,以将其插入另一个表。"你能解释一下吗
  • 检查你的代码中是否关闭了select标签。

标签: php


【解决方案1】:

试试这个

<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】:

    您必须“扩展”您的选择查询以包含行的 ID,然后在选项元素的值参数,而不是“中心名称”。如果我理解正确你想要什么,应该就是这样。

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

    【讨论】:

      【解决方案3】:

      试着这样写:

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

      【讨论】:

        【解决方案4】:

        警告:

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

        解决方案

        我使用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();
        
        ?>
        

        【讨论】:

          猜你喜欢
          • 2016-12-19
          • 1970-01-01
          • 2014-04-24
          • 1970-01-01
          • 2016-09-16
          • 1970-01-01
          • 2023-04-03
          • 1970-01-01
          • 2023-03-03
          相关资源
          最近更新 更多