根据下拉值自动填充文本框
Posted
技术标签:
【中文标题】根据下拉值自动填充文本框【英文标题】:Auto fill text box depending on Drop Down value 【发布时间】:2012-10-31 22:35:59 【问题描述】:这可能是一个愚蠢的问题,但我想澄清一下如何解决这个问题。我遇到过很多文章,它们可以根据使用 jQuery 和 Ajax 在下拉菜单中所做的选择来设置文本框的值。我的问题是当我尝试根据 5 个下拉菜单中的选择做同样的事情时。我将 Id 值存储在数据库中,该值应用于填充文本框。任何人都可以指导如何通过多个下拉菜单解决这个问题。到目前为止,这是我的代码:
<?php
$sql1="SELECT Schlungen FROM schulung as s";
$result=mysql_query($sql1);
echo "<p align='left'> <strong>Schulung 1</strong> <select name='Schlungen1'> <option value default></option>";
while ($row = mysql_fetch_array($result))
echo "<option value='" . $row['Schlungen'] . "'>" . $row['Schlungen'] . " </option>";
echo "</select>";
?>
<?php
error_reporting(0);
//Drop Down for Schulung 2
$sql2="SELECT Schlungen FROM schulung as s";
$result=mysql_query($sql2);
echo "<p align='left'> <strong>Schulung 2</strong> <select name='Schlungen2'> <option value default></option>";
while ($row = mysql_fetch_array($result))
echo "<option value='" . $row['Schlungen'] . "'>" . $row['Schlungen'] . " </option>";
echo "</select>";
?>
<?php
error_reporting(0);
//Drop Down for Schulung 3
$sql3="SELECT Schlungen FROM schulung as s";
$result=mysql_query($sql3);
echo "<p align='left'> <strong>Schulung 3</strong> <select name='Schlungen3'> <option value default></option>";
while ($row = mysql_fetch_array($result))
echo "<option value='" . $row['Schlungen'] . "'>" . $row['Schlungen'] . "</option>";
echo "</select>";
?>
<?php
error_reporting(0);
//Drop Down for Schulung 4
$sql4="SELECT Schlungen FROM schulung as s";
$result=mysql_query($sql4);
echo "<p align='left'> <strong>Schulung 4</strong> <select name='Schlungen4'><option value default></option>";
while ($row = mysql_fetch_array($result))
echo "<option value='" . $row['Schlungen'] . "'>" . $row['Schlungen'] . " </option>";
echo "</select>";
?>
<?php
error_reporting(0);
//Drop Down for Schulung 5
$sql5="SELECT Schlungen FROM schulung as s";
$result=mysql_query($sql5);
echo "<p align='left'> <strong>Schulung 5</strong> <select name='Schlungen5'><option value default></option>";
while ($row = mysql_fetch_array($result))
echo "<option value='" . $row['Schlungen'] . "'>" . $row['Schlungen'] . " </option>";
echo "</select>";
?>
<p align="left"><strong>Access_level </strong>
<input type="text" name="a_level" disabled="disabled">
</p>
【问题讨论】:
你能告诉我输出的样子吗? 【参考方案1】:为了实现自动完成,您可以在 html 文件中创建一个选择字段,在 keyup 事件上调用 javascript 函数并使用 jQuery 调用您的 php 文件
<html>
<head>
<script>
$('.autosuggest').keyup(function()
$.post("<your file.php>",any data you need,function(data)
//echo the data
//echo "<option value='" . $row['Schlungen'] . "'>" . //$row['Schlungen'] ." </option>";
$('.result').html(data)
);
);
$('.result option').click(function()
var rValue = $(this).text();
$('.autosuggest').attr('value',rValue);
$('.result').html('');
);
</script>
</head>
<body>
<input type='text' class='autosuggest'/>
<select class='result'>
</select>
</body>
</html>
【讨论】:
【参考方案2】:尝试将每个 html 选择选项的值设置为该文本的 id
所以回声应该是
echo "<option value='" . $row['id'] . "'>" . $row['Schlungen'] . " </option>";
然后在 html 上选择添加事件 onchange 并添加 JS 函数 foo() 通过使用 JQuery 或 Javascript 从页面获取所有选定的 id 来填充隐藏的输入
您还必须为每个 html 选择添加 id 或类以轻松获取其选定值
$("#select1").val();
$("#select2").val(); ...
然后将这些值插入隐藏输入字段中,以便隐藏输入现在包含所有选定的 id
【讨论】:
以上是关于根据下拉值自动填充文本框的主要内容,如果未能解决你的问题,请参考以下文章
显示rest api json响应,如使用angular js的文本框自动填充