これは私が昨夜質問した別の質問のフォローアップです。私の問題は、スクリプトが動作しないことではなく、xmlhttprequestオブジェクトが応答テキストを返すときに、HTML入力要素のいくつかの非常に奇妙な繰り返しが発生していることです。ここでは、コードです:JSバグ:入力フィールドがxmlhttp応答テキストで繰り返される
<!DOCTYPE HTML>
<?php
if(!empty($_GET['uName']))
{
$r = mysql_connect("localhost", "root", "pass") or die("Couldn't connect to db");
mysql_select_db("db", $r) or die ("Couldn't select db");
$q = mysql_query("select * from users where uName = '{$_GET['uName']}'") or die("Couldn't query table");
$data = mysql_fetch_assoc($q);
mysql_close($r);
}
?>
<html>
<head>
</head>
<body>
<form>
<input type="text" name="fUName" onchange="ShowUser(fUName.value);" value="name" style="width:125px;">
</form>
<div id="display"><?php print "ID = {$data['id']}"; ?></div>
</body>
</html>
<script type='text/javascript'>
function ShowUser(name)
{
if(name.length == 0)
{
document.getElementById("display").innerHTML = "Please enter a username to check";
return;
}
if(window.XMLHttpRequest)
{
xmlhttp = new XMLHttpRequest();
}
else
{
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange = function()
{
if(xmlhttp.readyState == 4 && xmlhttp.status == 200)
{
document.getElementById("display").innerHTML = xmlhttp.responseText;
}
};
xmlhttp.open("GET", "index.php?uName=" + name, true);
xmlhttp.send();
}
</script>
ここで奇妙な問題です:
あり唯一の1つの入力フィールドも、私はそれにテキストを入力し、それがフォーカスを失ったときしかし、orginallyである必要があり、 JSがトリガーされ、別の入力フィールドも表示されます。
は1つのスクリプトでPHP、JSとHTML/CSSの悪い習慣を無視してください、これは私がバッフル付きだ
:)悪い方のためになっている簡単なテストになるはずでした!
ありがとうございました。
ありがとうございました。簡単な例があってもスクリプトを急いではいけません! :) – Lee