我输入表单字段时,我想在其中一个输入框中输入例如#订单时预先填充。我已经成功编写了查询并通过cfdump成功输出了它。但是,我无法弄清楚如何根据我在表单文本字段中为订单号输入的内容来自动填充这些字段?如果我将我准备的查询中的变量放入value
,它会预先填充表单字段,但我希望表单字段根据我为订单#放入的内容进行更新?
我是否必须使用JavaScript才能完成此任务?
以下是我的输入表单。
<label for="ordernum">Order #</label>
<input type="text" name="ordernum" value="">
<label for="companyname">Company Name</label>
<input type="text" name="companyname" value="">
<label for="resident">Resident</label>
<input type="text" name="resident" value="">
<label for="complexname">Complex Name</label>
<input type="text" name="complexname" value="">
<label for="suitenum">Suite #</label>
<input type="text" name="suitenum" value="">
这是我的查询
<cfquery name="testForm" datasource="randomData">
SELECT [COMPANY NAME] AS COMPANYNAME, [RESIDENT], [COMPLEX NAME] AS
COMPLEXNAME, [SUITE##] AS SUITE, [ORDER##] AS ORDER
FROM tests.DB
WHERE [ORDER##] = 112211
</cfquery>
我最初尝试将这些表单输入字段包装到cfoutput查询中并将变量分配给value
输入字段,但是预先填充它我想要更新表单信息。基于我为订单号字段输入的内容。
非常感谢任何建议。
答案 0 :(得分:0)
http://api.jquery.com/jquery.ajax/是您最好的选择。在ordernum字段的第三次击键上,使用ajax检索查询结果。我使用制表符分隔值来保持简单。然后,您可以使用该数据集中的每一列填写字段。
<input type="text" name="ordernum" value="" id="search">
<script>
$('#search').keyup( getResults );
function getResults(){
myVal = $('#search').val() ;
if (myVal.length < 3) {
$('#list').html('');
} else {
$.ajax({
url: './search.cfm?search='+myVal,
success: function(data) {
// fill in the fields with the data
},
dataType: 'html',
timeout: 1000,
error: function(x, t, m) {
if(t==="timeout") {
alert("Something went wrong.");
} else {
alert(t);
}
}
});
}
}
</script>