免責事項
RFID
ページを機能させる方法は、ユーザーがテキストフィールドに入力することだと思います。
コードをより単純で柔軟にするために、3つのフォームのようなセグメントを3つの別々のフォームに変更しました。これには、ブラウザがJavaScriptをサポートしていない場合、ページがフォームの送信にフォールバックするという追加の利点もあります。
SQLを理解できなかったので、コメントアウトしただけです。
また、ページ全体にPHPを追加したので、JavaScriptが利用できない場合でも、送信されたページはフォームで正しく応答します。
SQLクエリコードを追加するには、結果のTile
とTileScore
がそれぞれ変数$tile
とに配置されていることを確認してください$tileScore
。
コード
<?php
/*
function sqlStuff(){
$con = mssql_connect('123', 'abc', 'pass');
if(!$con){die('Could not connect: ' . mssql_get_last_message());}
mssql_select_db('db1', $con);
$result = mssql_query('SELECT * FROM Scrabble');
// Why is the following here?
$row = array('RFID' => '', 'Tile' => '', 'TileScore' => '');
$row = mssql_fetch_row($result)
}
*/
$rfid=$_GET['RFID'];
$tile='Tile for "'.$rfid.'"';
$tileScore='TileScore for "'.$rfid.'"';
$separ='/'; //separator
// if this is an ajax request do the following, if not print the page as normal
if($_GET['r']=='ajax'){
$ajaxString=$separ.$tile;
$ajaxString.=$separ.$tileScore;
echo $ajaxString;
}else{
// which form was submitted, only used if form was submitted by browser.
$form=$_GET['form'];
// escape quote characters
$rfid=htmlentities($rfid);
$tile=htmlentities($tile);
$tileScore=htmlentities($tileScore);
?><?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>live-submitting form using javascript!</title>
<style type="text/css">
/*<![CDATA[*/
body{font:80% sans-serif;}
/*]]>*/
</style>
<script type="text/javascript">
//<![CDATA[
window.onload=load;
function load(){
document.getElementById('form1').onsubmit=function(){if(submitWithJS(this)){return false;}};
document.getElementById('form2').onsubmit=function(){if(submitWithJS(this)){return false;}};
document.getElementById('form3').onsubmit=function(){if(submitWithJS(this)){return false;}};
}
function submitWithJS(thisForm){
// setup ajax object
var httpReq;
if(window.XMLHttpRequest){// Non-IE
httpReq=new XMLHttpRequest();
}else if(window.ActiveXObject){ // IE
try{httpReq=new ActiveXObject("Msxml2.XMLHTTP");}
catch(e){
try{httpReq=new ActiveXObject("Microsoft.XMLHTTP");}
catch(e){
return false; // some other IE check?
}
}
}else{
return false; // submit without ajax
}
// Actual code:
httpReq.onreadystatechange=function(){
// basically readyState 4 is when reply is recieved
if(this.readyState==4){responder(this,thisForm);}
}
// prepare args
//beware "arguments" is a keyword
var args="?r=ajax"; // type of request
args+="&RFID="+thisForm.RFID.value;
// begin request
httpReq.open("GET",args);
httpReq.send();
return true;
}
function responder(httpResponse,form){
// use the $separ variable from PHP
<?php echo ' var separator="'.$separ.'";'."\n";?>
if(httpResponse.responseText[0]==separator){
var returned=httpResponse.responseText.split(separator); // separation
form.Tile.value=returned[1];
form.TileScore.value=returned[2];
}else{form.submit();}
}
//]]>
</script>
</head>
<body>
<p class="notice">javascript required to use more than one form</p>
<form method="get" action="" id="form1">
<div>
<input type="hidden" name="form" value="1"/>
<input type="text" name="RFID"<?php if($form==1){echo ' value="'.$rfid.'"';}?>/>
<input type="text" readonly="readonly" name="Tile"<?php if($form==1){echo ' value="'.$tile.'"';}?>/>
<input type="text" readonly="readonly" name="TileScore"<?php if($form==1){echo ' value="'.$tileScore.'"';}?>/>
<input type ="submit" value="submit"/>
</div>
</form>
<form method="get" action="" id="form2">
<div>
<input type="hidden" name="form" value="2"/>
<input type="text" name="RFID"<?php if($form==2){echo ' value="'.$rfid.'"';}?>/>
<input type="text" readonly="readonly" name="Tile"<?php if($form==2){echo ' value="'.$tile.'"';}?>/>
<input type="text" readonly="readonly" name="TileScore"<?php if($form==2){echo ' value="'.$tileScore.'"';}?>/>
<input type ="submit" value="submit"/>
</div>
</form>
<form method="get" action="" id="form3">
<div>
<input type="hidden" name="form" value="3"/>
<input type="text" name="RFID"<?php if($form==3){echo ' value="'.$rfid.'"';}?>/>
<input type="text" readonly="readonly" name="Tile"<?php if($form==3){echo ' value="'.$tile.'"';}?>/>
<input type="text" readonly="readonly" name="TileScore"<?php if($form==3){echo ' value="'.$tileScore.'"';}?>/>
<input type ="submit" value="submit"/>
</div>
</form>
</body>
</html>
<?php }?>