javascript - 使用 php 从组合框插入

标签 javascript php mysql combobox

我正在从数据库填充组合框,问题是当我从组合框中选择一个项目并尝试保存到数据库中的另一个表时,它会选择记录 ID 列而不是项目本身。 这就是填充组合框的方式。

<label>State</label>
<select name="state" class="state" onChange="display(this.value)" width="142" style="width: 142px">
<option value="" selected="selected">-- Select State --</option>
<?php
$query="select * from tbl_state";
$query_result=mysql_query($query)or mysql_error();
                            while($row=mysql_fetch_array($query_result))
                        {
?>
<option value="<?php echo $row['id']; ?>"><?php echo $row['state_name']; ?></option>
<?php
}
?>

  </select>
<div id="show_city" style="position: relative" height:5px;>
     <label>LGA</label>
      <select name="city" class="lga" width="142" style="width: 142px">
      <option value="" selected="selected">-- Select LGA --</option>
       </select>
</div>
</p>

数据库连接

$state              = $_POST['state'];
$city               = $_POST['city'];

$sql="INSERT INTO members (state, city)
VALUES ('$state', '$city')";

注意。我正在使用 javascript 填充组合框。

最佳答案

当您提交表单时,只会发送字段名称及其值。在您的情况下,当用户选择状态并按提交时,将按照您在选项值标记处指定的行 ID 发送行 ID。

您可以使用<option value="<?= $row['state_name'] ?>"> ... </option>"然后直接在ini php中获取状态名:

    $state = $_POST['state'];

或者保留现在的填充代码,并通过使用记录 ID 查询数据库来获取州名称。

    $state_id = intval($_POST['state']);
    $city_id  = intval($_POST['city']);

    $sql = "SELECT `state_name` FROM tbl_state WHERE id=$state_id";
    $query_result = mysql_query($sql) or mysql_error();

    $state = mysql_result($query_result, 0);
    echo $state;

getcity.php

<?php
$con=mysql_connect('localhost','root','') or die('Mysql not connected');
mysql_select_db('thriftdb',$con) or die('DataBase not connected');

$state_id=$_REQUEST['state_id'];

$query="select * from lga where state_id='$state_id'";

?>
<label>LGA</label>
<select name="city" width="142" style="width: 142px">
<option value="" selected="selected">-- Select LGA --</option>
<?php
$query_result=mysql_query($query)or mysql_error();
while($row=mysql_fetch_array($query_result))
{
?>
<option value="<?php echo $row['id']; ?>"><?php echo $row['lga_name']; ?></option>
<?php
}
?>
</select>

数据库结构如下 “lga”表有...

lga_id --- state_id --- lga_name

“状态”表有

state_id  --- state_name

关于javascript - 使用 php 从组合框插入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21575852/

相关文章:

javascript - 如何正确插入回调函数,让一个函数结束后再执行另一个函数

javascript - 获取元素相对于父容器的位置/偏移量?

php - 保存并从 sql 获取哈希值

php - 项目sql表

mysql - 将表元素插入集合中

javascript - Closure Compiler : @enum, 属性崩溃和 JSC_UNSAFE_NAMESPACE

javascript - React JS 站点上的 Google Analytics 输出不正确的数据( session 中断?)

javascript - 运行查询后自定义弹出消息

php - 如何在 CakePHP 中读取 "Validate"人名?

mysql - 如何在插入值时检查两列?