选择选项内部值与PHP

时间:2019-07-17 09:04:04

标签: php html-select

我在使用PHP选择选项值时遇到麻烦

将显示州和城市的多个选择框。 jQuery加载为数据库的ajax方法。而且我需要达到“期权价值”内在价值。我将在下面的代码中显示问题。

   <?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

因此,我想达到“纽约”的内在价值。 请帮我 谢谢

1 个答案:

答案 0 :(得分:0)

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

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

或者,您可以获取由其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