我有一个填充的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' />
答案 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>
代表选项元素。
有些人提到值得一读: