コメント |
@DIV
select 名称 from 商品分類マスタ where 商品分類 = '{$_GET['tkey']}'
@END
単純な参照ならば、select 名称 from テーブル名とする。
この場合、Oracle の場合、SQL の中に (ダフルクォーテーション)を使用しないで下さい。
参照ボタンと、表示フィールドが自動的に作成されて、以下のようなコードが組み込まれます
@DIV
<INPUT <?= $DISABLED ?>
type=button
value="参照"
onClick='TableRef("1", document.getElementsByName("In24")[0].value, 0, document.getElementsByName("In24ref")[0] )'>
@END
呼び出された関数は以下のようなもので、2番目の引数を使用して(キー)として、Ajax を呼び出します。
戻す値は、3番目の引数で指定できますが、dom の再利用を想定していないので、変更する事は無いでしょう。
@DIV
function TableRef( sNo, sKey, nNo, setObj ) {
var result,dom,sValue;
if (window.navigator.appName.toLowerCase().indexOf("microsoft") > -1) {
dom = new ActiveXObject("Msxml2.DOMDocument.3.0");
dom.async = false;
}
else {
dom = document.implementation.createDocument("", "", null);
dom.async = false;
parser = new DOMParser();
}
sKey = encodeURIComponent(sKey);
// 最後のパラメータの false は、同期実行を意味します
objXMLHttp.open(
"GET",
"ajax" + sNo + ".php?tkey=" + sKey
, false );
objXMLHttp.send( "" );
dom = objXMLHttp.responseXML;
sValue = dom.getElementsByTagName("value")[0].firstChild.nodeValue;
if ( sValue == 'error' ) {
alert('入力されたデータは存在しません ');
}
else {
if ( dom.getElementsByTagName("value")[nNo].firstChild != null ) {
setObj.value = dom.getElementsByTagName("value")[nNo].firstChild.nodeValue;
}
else {
setObj.value = '';
}
}
}
@END
↓Ajax テスト方法サンプル
@DIV
ajax1.php?tkey=G20
@END
|