ソース掲示板




すべてから検索

キーワード   条件 表示 現行ログ 過去ログ トピックス 名前 本文
Ajax 参照 ( No.5 )
日時: 2007/06/07 17:03
名前: lightbox



select 名称 from 商品分類マスタ where 商品分類 = '{$_GET['tkey']}' 
単純な参照ならば、select 名称 from テーブル名とする。 この場合、Oracle の場合、SQL の中に (ダフルクォーテーション)を使用しないで下さい。 参照ボタンと、表示フィールドが自動的に作成されて、以下のようなコードが組み込まれます
<INPUT  <?= $DISABLED ?>
	type=button
	value="参照"
	onClick='TableRef("1", document.getElementsByName("In24")[0].value, 0, document.getElementsByName("In24ref")[0] )'>
呼び出された関数は以下のようなもので、2番目の引数を使用して(キー)として、Ajax を呼び出します。 戻す値は、3番目の引数で指定できますが、dom の再利用を想定していないので、変更する事は無いでしょう。
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 = '';
		}
	}

}
↓Ajax テスト方法サンプル
ajax1.php?tkey=G20