如何发布选择框而不是选择框的值

时间:2019-01-13 07:23:52

标签: javascript php html ajax

我有一个表单,我使用该值使用ajax生成下拉列表。当我将此表格发布到数据库时,该值将输入数据库,但我希望输入实际名称。

<form action='' method='post'>
<select name="region">
   <option disabled selected hidden>---Select---</option>
<?php
 $region_sql = "SELECT * FROM `regions`";
 $region_res = mysqli_query($con, $region_sql);

 if(mysqli_num_rows($region_res) > 0){
 while($region_row = mysqli_fetch_array($region_res)){
     echo "<option value='".$region_row[id]."'>".$region_row[region]."</option>";
 } 
}
?>
</select>


<div class="form-group col-sm-4">
    <div class="row">
        <div class="col-sm-3">
            <label for="city">City</label></div>
            <div class="col-sm-7">
                <select class="form-control" name="city" id="city" data-live-search="true">
                    <option>First choose a Region</option>
                </select>

            </div>
        </div>
    </div>
</form>

此数组是个问题:echo "<option value='".$region_row[id]."'>".$region_row[region]."</option>

它最终是:<option value="1">mid atlantic</option> 值为1、2、3、4或5等。 1被输入到数据库中,但是我想在大西洋中部输入数据库。

有没有办法做到这一点? 谢谢!

更新

我正在使用ID将其发布到getstate.php

ajax:

$(document).ready(function(){ 
$("#region").change(function()
    var id=$(this).val();
    var dataString = 'id='+ id;
       $.ajax
       ({
       type: "POST",
       url: "getState.php",
       data: dataString,
       cache: false,
       success: function(html)
       {
         $("#state").html(html);
       }
        });
            });
  });

getstate.php:

if($_POST['id']){
    $region_id=$_POST['id'];
    $sql= "select * from states where region_id='$region_id' ORDER BY state ASC";
    $res= mysqli_query($con, $sql);
    echo "<option>---Select--</option>";

    if(mysqli_num_rows($res) > 0){
        while($row = mysqli_fetch_array($res)){
            echo "<option value='".$row['id']."'>".$row['state']."</option>";
        } 
    }else{
        die('there was an error running query [' . $con->error . ']');
    }
}

代码按原样工作。我只希望它在数据库中输入名称,而不是ID号。

0 个答案:

没有答案