2
私は、PHP関数を呼び出してMySQLデータベースからいくつかの値を返すPHPファイルに値を渡すように、以下のコードを実行しようとしています。これは、私は非常に簡単だろうと思った課題の一部ですが、私は私の問題は、JavaScriptのイベントハンドラと思う - 入力された値を参照する方法?PHPとAJAXとMySQLの統合
HTML:
<form>
<input type="text" name="users" onkeydown="showUser(this)"/>
</form>
<div id="txtHint">
<p id="responder"><b>Person info will be listed here.</b></p>
</div>
showUser()関数:
<script type="text/javascript">
function showUser(str)
{
if (str=="")
{
document.getElementById("responder").innerHTML="";
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("responder").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","php/student_query.php?q="+str,true);
xmlhttp.send();
}
</script>
PHP:私が言ったように
<?php
$q=$_GET["q"];
// Step 1
$conn = mysql_connect("localhost", "root");
// Step 2
mysql_select_db("collegeData", $conn);
//Step 3
$sql="SELECT * FROM studenttable WHERE studentID = '".$q."'";
$result = mysql_query($sql);
// Step 4
while ($row = mysql_fetch_array($result))
{
// Step 5
echo "Hello $row[firstName] $row[lastName]<br/>";
echo "Your two course modules are $row[moduleNo1] and $row[moduleNo2]<br/>";
echo "<tr><td> $row[firstName]</td><td> $row[lastName] </td> <td> $row[studentID] </td> </tr>";
echo "<br/>";
}
// Step 6
mysql_close($conn);
?>
が、私は私の問題は、イベントハンドラであると思います、私はJSと素晴らしいことではない。助けていただければ幸いです。
にあなたのPHPを変更することで、保護からデータベースクエリを保護する必要があり、私もそれがonKeyDownメソッドから来るかもしれないと思う - あなたはあなたのソリューションをテストしましたか? – Chan
いいえ私はテストしませんでした。このケースでは 'onkeyup'を使う方が良いかもしれません。 –
こんにちは、ありがとう。私は 'onchange'で 'this.value'を試みましたが、うまくいきませんでした。これは、 'onkeyup'と 'this.value'で動作するようになりました。 Enter/Returnキーを使用してイベントをトリガする方法を教えてください。私のためには、「変えよう」はうまくいかないでしょう。おかげで – garethdn