Select 选项内部值 php

Select Option inside value with php

我在使用 PHP

选择 select 选项值时遇到了问题

显示多个 select 框用于州和城市。 Jquery 加载为数据库的 ajax 方法。我需要达到 "option value" 的内在价值。我将在下面的代码中显示问题。

   <?php  
     function load_country() {

     include 'includes/db.php';

    $sql = "SELECT * FROM ilce ORDER BY name";

    mysqli_set_charset($con, "UTF8");

    $result = mysqli_query($con, $sql);

    while($row = mysqli_fetch_array($result)) {
      $output .= '<option name="' . $row['name'] .'" value="' . 
      $row["ilce_id"].'">' . $row["name"]. '</option>';
    }

    return $output;

   }
  ?>

   <select class="form-control" name="state" id="state">
     <option>Choose State</option>
      <?php
        echo load_country();
      ?>
    </select>

    <?php 
      $state = mysqli_real_escape_string($con, $_POST['state']);  
      echo $state;

     ?>

 <option value="5">New York</option>
 $state is showing for me Example : "id" => 5

因此,我想达到 "New York",内在价值。 请帮我 谢谢

<option> 元素的文本内容不会发布到服务器,只有它的 value

如果您要将所选状态插入数据库(例如在用户 table 中),您可能只需插入数字状态 ID 并在需要时加入两个 table显示信息。

或者,您可以获取由所有州的 ID 索引的数组,然后引用该数组:

while ($row = mysqli_fetch_array($result)) {
  $allStates[$row['ilce_id']] = $row['name'];
}

$stateId = $_POST['state'];
$thisState = $allStates[$stateId];
echo $thisState;

或者根据您的需要,通过 ID 获取您需要的一行。


一个不太理想的解决方案是将 <option> value 设置为行的名称而不是其 ID:

$output .= '<option value="' . $row["name"] . '">' . $row["name"] . '</option>';

但这似乎违背了使用关系数据库的目的。


另见 Get Text From Tag Using PHP