データベースのテーブルの1つから情報を取得し、それをテキストボックスに貼り付ける簡単なhtmlページを作成しました。これは、リクエストを処理するAJAX関数を介してPHPに接続することで行われます。
私が疑問に思っているのは、このデータを1つだけではなく2つのテキストボックスに配置できるかどうかです。コードで単一のテキストボックスを指定する必要があるため、これを実行する方法がわかりません。テキストボックスを機能させるには、テキストボックスごとに個別の関数を作成する必要がありますか、それとももっと簡単な解決策がありますか?
HTMLページ:
<html>
<head>
<script type="text/javascript">
function getDetails(str)
{
if (str=="")
{
document.getElementById("Text1").value="";
return;
}
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("Text1").value=xmlhttp.responseText; // here is why it only goes into "Text1"
}
}
xmlhttp.open("GET","getDetails.php?q="+str,true);
xmlhttp.send();
}
</script>
</head>
<body>
<form>
<!--here a user enters an "RFID" and the details are returned into "Text1"-->
<input type="text" name="RFID1" value="" onKeyup="getDetails(this.value)" />
<input type="text" id="Text1" name="Text1" />
<input type="text" id="TextScore1" name="TextScore1"/>
</form>
<br/>
<form>
<!--here a user enters another "RFID" and the details are also returned into "Text1"
(though I would like it to go to Text2 and TextScore2)-->
<input type="text" name="RFID2" value="" onKeyup="getDetails(this.value)" />
<input type="text" id="Text2" name="Text2"/>
<input type="text" id="TextScore2" name="TextScore2"/>
</form>
</body>
</html>
PHPページ:
<?php
$q=$_GET["q"];
$con = mssql_connect("SQL", "0001", "Password");
if (!$con)
{
die('Could not connect: ' . mssql_get_last_message());
}
mssql_select_db("database1", $con);
$sql="SELECT * FROM Scrabble WHERE RFID = '".$q."'";
$result = mssql_query($sql);
while($row = mssql_fetch_array($result))
{
echo $row['Tile'];
echo $row['TileScore'];
}
mssql_close($con);
?>
*注-私のサーバーはMsSQLを使用しています
もう1つの質問は、HTMLファイルでわかるように、2つのフォームがあり、両方のフォームで同じ関数を実行する必要があります。ここでは、フォームごとに接続する別のPHPファイルを作成する必要があると思います。しかし、念のために言っておきますが、それを1つのファイルに保存することは可能ですか?もしそうなら、どのように対処しますか?
編集一部の人を混乱させたようです。テキストを両方のテキストボックスに入れたくないのですが、実際には結果を2つのテキストボックスに分割します。「Text」がテキストボックスText1になり、TextScoreがテキストボックスTextScore1になります。