我有一个下拉列表(ddlAccount),我可以从中选择一个项目并在 test.php 中进行 db 查询以检索相应的数据,然后输出带有返回数据的输入元素。
这是我的 JavaScript 代码:
function load1(){
$('#divAccountNum').load('test.php?accountInfo=' + document.getElementById('ddlAccount').value , '' ,function() {
alert('Load was performed.')});
}
当我更改下拉列表项时调用的 load1 函数,它获取所选选项的值并将其发送到 test.php 的一个名为“accountInfo”的参数中。
我的html:
<select name="ddlAccount" id="ddlAccount" onchange="load1();">
<option value="1"> Account1</option>
<option value="2"> Account2</option>
<option value="3"> Account3</option>
</select>
<div id="divAccountNum" >
</div>
和 test.php :
if($_GET['accountInfo'])
{
$account = $accountDAO->load($_GET['accountInfo']); //mysql query
//print an input holding account number as its value
echo "<input type='text' name='txtAccountNum' id='txtAccountNum' value='".$account->accountnumber."'/>";
}
问题是当我选择一个选项时没有发生任何事情(没有出现在 div (divAccountNum) 中)有什么建议吗?提前致谢。
编辑: 我使用了@thecodeparadox 的代码,它可以工作,我找到了解决我在下面评论中提到的问题的方法,即从下拉列表中选择一个项目时,它会显示输入元素中的值并加载再次形成。解决方案是: jQuery Ajax 返回整个页面 所以我的 jquery 代码现在看起来像:
$(document).ready(function(){
$('#ddlAccount').on('change', function() {
$.get('testJquery.php?accountInfo=' + $(this).val(), function(accountNum) {
//console.log(accountNum);
$('input#txtAccountNum').val(accountNum);
});
});
和 testJquery.php :
if($_GET['accountInfo'])
{
$account = $accountDAO->load($_GET['accountInfo']);
$accountNum = $account->accountnumber;
echo $accountNum;
}
最后我在 id="txtAccountNum" 的 divAccountNum 中添加了输入元素