Firefox の Ajax 互換性の問題、プログラムは IE で正常に実行されます
var xmlHttp=false;
function createXMLHttp(){
try{
xmlHttp=new XMLHttpRequest();
}catch(trymicrosoft ){
try{
xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
}catch(othermicrosoft){
try{
xmlHttp=new ActiveXObject("Microsoft .XMLHTTP") ;
}catch(failed){
xmlHttp=false;
}
}
}
if(!xmlHttp){
alter("XMLHttpRequest オブジェクトを作成できません! ");
}
}
function Ajaxcheck(){
var num=document.myform.uname.value;//フォームデータを取得
var url="check .php? n="+num;
createXMLHttp();
xmlHttp.open("GET",url,true);//ここで true は非同期リクエストを表します
xmlHttp.onreadystatechange=updatePage;
xmlHttp .send(null);
}
function updatePage(){
if(xmlHttp.readyState==4){
var response=xmlHttp.responseText;
if(response =="ok"){
document.myform.nameerr.value="√";
return true;
}else if(response=="no"){
document.myform. nameerr.value="×ユーザー名が占有されています";
return false;
}else{
document.myform.nameerr.value="サーバーに問題があります";
return false ;
}
}
}
コードは上記のとおり、Firefox にユーザー名が存在するかどうかを検出します。は英語の文字なら普通ですが、中国語の名前だと何が起こっているのかわかりません。 ? ? ? ?
-----解決策--------------------------------
操作中にエラーが発生しました。
check.php ページでユーザー名をエコーして、取得されたコードが文字化けしているかどうかを確認できます。文字化けしているので、urlencode を使用して処理してください。
------解決策---------
var url="check.php?n= " +num;
url=エンコードURI(url);
------解決策---------
check.php ページでユーザー名をエコーし、Check取得したコードが文字化けしているかどうかを確認します。文字化けしている場合は、urlencodeを使用して処理します。
------解決策------------------