ドロップダウン リスト (ddlAccount) があり、そこから項目を選択し、test.php で db クエリを実行して対応するデータを取得し、返されたデータを含む入力要素を出力します。
これは私のJavaScriptコードです:
function load1(){
$('#divAccountNum').load('test.php?accountInfo=' + document.getElementById('ddlAccount').value , '' ,function() {
alert('Load was performed.')});
}
ドロップダウン リストの項目を変更すると load1 関数が呼び出され、選択したオプションの値が取得され、「accountInfo」というパラメーターで test.php に送信されます。
私の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 のコードのビットを使用して動作し、以下のコメントで言及した問題の解決策を見つけました。ドロップダウン リストから 1 つの項目を選択すると、入力要素の値が表示され、再びフォーム。解決策は次のとおりです 。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 に入力要素を追加しました