根据从选择框中选择的item_ID从MySQL检索数据

时间:2014-03-10 21:04:32

标签: javascript php jquery mysql

我有一个填充的MySql数据库,我的数据库有两列(item_ID,item_title),我的HTML页面有一个选择框,其中存储了所有item_ID,在它下面我有一个输入框,现在我想要请执行下列操作: 当用户从选择框中选择item_ID时,它应该转到数据库并找出属于该item_ID的item_title是什么。 我目前正在使用PHP,我不知道如何进行这样的任务。 先感谢您。

注意:我可以使用所有可用的item_ID填充选择框。我唯一不确定如何实现的是在item_ID更改时动态检索item_title,并在输入框内显示。

<select name='item_ID'>
<option>1</option>
<option>2</option>
<option>3</option>
<option>4</option>
</select>

<input name='item_title' value='Should change as the item_ID changes' />

1 个答案:

答案 0 :(得分:1)

假设您使用PHP生成select元素:

<?php

    while($row = mysql_fetch_assoc($some_query)) {
        echo "<option>" + $row["id"] + "</option>";
    }

?>

右?但是现在为什么不在同一个查询中添加title并用它生成选择?

echo "<option data-title='" + $row["title"] + "'>" + $row["id"] + "</option>";

很好,所以您的选择将如下所示:

<select name='item_ID'>
    <option data-title="Title 1">1</option>
    <option data-title="Title 2">2</option>
    <option data-title="Title 3">3</option>
    <option data-title="Title 4">4</option>
</select>

现在您将change事件绑定到这样的选择:

$("#item_ID").on("change", function(e) {
    var selectedOption = $("option:selected", this);
    $("#item_title").val($(selectedOption).data("title"));
});

不要忘记将id="item_title"添加到标题字段。

因此,使用这种方法,您不需要额外的请求和额外的数据库查询,以便通过在用于创建select的同一查询中添加标题来获取标题({{1如果它来自另一个表,我想)。因此,它将提高您的应用程序性能。

<强>更新

事件绑定应保留在inner/left join的{​​{1}}事件中,如下所示:

ready

对于更多列,您只需将document前缀添加到$(document).ready(function() { $("#item_ID").on("change", function(e) { var selectedOption = $("option:selected", this); $("#item_title").val($(selectedOption).data("title")); }); }); 元素属性中:

data-

等等......然后访问它你使用相同的方法:

option

考虑<option data-title="" data-other-property=""></option> 代表选项元素。

有些人提到值得一读: