0

我有一个下拉列表(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 中添加了输入元素

4

2 回答 2

0

尽管您没有提供有关问题的足够信息,但您可以尝试以下操作:

function load1(){
  $('#ddlAccount').on('change', function() {  
    $.get('test.php?accountInfo=' + $(this).val(), function(response) {
       $('div#divAccountNum').html(response);
    }, 'html');
  });
}

笔记:

  1. $('#ddlAccount').on('change',下拉更改时触发
  2. $.get('test.php?accountInfo=' + $(this).val()..test.php使用从下拉列表中选择的值发送 get(ajax) 请求
  3. 第二个参数回调函数中的参数是来自服务器的response响应$.get()
  4. 'html'作为您返回的数据类型的第三个参数$.get(),当您返回一个 html 时,它就是html.

欲了解更多信息,请阅读:

改变()

$.get()

于 2012-05-06T07:46:16.123 回答
0

要从选择输入中获取选定的选项值,请使用:

$('#ddlAccount option:selected').val()
于 2012-05-06T07:48:00.847 回答