Ajax クライアント

  基本コード



全てのサンプルコードで document.all で、IE かどうかを判断していますが、ASP.NET で自動作成される
判断用のコードは以下のようになります
( コードが長くなるので、サンプルは全て document.all で書かれています )

Microsoft Official クロスブラウジング用コード
  
if (window.navigator.appName.toLowerCase().indexOf("microsoft") > -1) {
	// IE 用
}
else {
	// IE 以外用
}
  

IE と Mozilla 兼用です。
( ※ dom は必要無いと思いますが、一応付加してあります )

  
<SCRIPT language="javascript" type="text/javascript">

	var dom,bIE;
	var objXMLHttp;

	if ( document.all ) {
		bIE = true;
		dom = new ActiveXObject("Msxml2.DOMDocument.3.0");
		objXMLHttp = new ActiveXObject("Msxml2.XMLHTTP.3.0");
	}
	else {
		bIE = false;
		dom = document.implementation.createDocument("", "", null);
		objXMLHttp = new XMLHttpRequest();
	}

</SCRIPT>
  

Microsoft の実際にインストールされている
Msxml2.DOMDocumentMsxml2.XMLHTTP のバージョンはレジストリで確かめて下さい。



  サーバーへ送信



ファイルのアップロードをするフォームの onSubmit ハンドラの内部より呼ばれます。
false を返すと、submut しないように記述されます。

responseText は返された文字列をそののまま受け取りますが、漢字を受け取りたい場合は、
Ajax 日本語処理 を参照して下さい

また、XML をオブジェクトで受け取る方法もありますが、XML をクライアントで解析する必要があるので
ここでは説明しません。XML は、複合した多くの情報を受け取る場合に使用します。

  
function FileExist( strName ) {

	var result;

	// 最後のパラメータの false は、同期実行を意味します
	objXMLHttp.open(
		"GET",
		"http://winofsql.jp/realwebapp/file_exist.php?" +
		"name=" + strName
		, false );
	objXMLHttp.send( "" );
	result = objXMLHttp.responseText;

	if ( result == 'OK' ) {
		if ( confirm( "このファイル名は既に存在します。置き換えますか?   " ) ) {
			return true;
		}
		else {
			return false;
		}
	}
	else {
		return true;
	}

}
  

URL は、相対パスが指定できます。また、/ からのパスでもかまいません。
クライアントの XMLHttp は同じドメイン内でしか動作しない 為、ドメインを記述して呼び出している(上記例)のに、
ページそのものが IPアドレスを使用して表示している場合、異なるドメインとしてエラーになりますので注意してください




  サーバ側のコード

サーバと通信する場合、クライアント側の仕様により、サーバのコードは utf-8 を使用する事が最も望まれます。
しかし、慣れるまでは「日本語を使用しない」という事を守って shift_jis を使用すると良いでしょう。
( utf-8 を使用する為にはいろいろ知っておく事があります )

以下のコードでは、日本語を使用しないので、一行目のヘッダは無意味ですが、後々の仕様変更の為に書いておきます。
また、2行目のキャッシュ制御も必要ありませんが、ブラウザで直接表示してテストする時の為に書いておきます。

  
<?
header( "Content-Type: text/html; Charset=shift_jis" );
header( "Expires: Wed, 31 May 2000 14:59:58 GMT" );

$file_path = "file/{$_GET['name']}";

if ( file_exists ( $file_path ) ) {
	print "OK";
}
else {
	print "ERR";
}
?>
  




  実演

サーバー側に実際 a.txt というファイルがあります。




  
・
・
function doit () {

	var strName = document.getElementsByName("file")[0].value;

	alert( FileExist( strName ) )

}
・
・
・
<INPUT type=text name="file" value="a.txt">
<INPUT type=button value="実行" onClick='doit()'>
  










  infoboard   管理者用   
このエントリーをはてなブックマークに追加





フリーフォントWEBサービス
SQLの窓WEBサービス

SQLの窓フリーソフト

素材

一般WEBツールリンク

SQLの窓

フリーソフト

JSライブラリ