functions.js というファイルがあり、学生がテストで取るスコアを計算する関数 sum があります。管理者が各学生のすべてのスコアを確認できるように、その合計をファイル admin.php の表に出力したいと考えています。
では、sum 変数を別のファイルに渡すにはどうすればよいでしょうか。onlick アクションを使用して関数を呼び出してみましたが、うまくいきませんでした
functions.js というファイルがあり、学生がテストで取るスコアを計算する関数 sum があります。管理者が各学生のすべてのスコアを確認できるように、その合計をファイル admin.php の表に出力したいと考えています。
では、sum 変数を別のファイルに渡すにはどうすればよいでしょうか。onlick アクションを使用して関数を呼び出してみましたが、うまくいきませんでした
私はあなたがおそらくこのようなものが欲しいと思います
document.getElementById('saveScoreButton').onclick = {
var r = new XMLHttpRequest,
message = document.getElementById('message'),
score = sum();
message.innerHTML = 'Saving your score; please wait a second';
r.open('get', 'savescore.php?score=' + score, true);
r.send(null);
r.onreadystatechange = function () {
if (r.readyState == 4 && r.status == 200) {
message.innerHTML = 'Saved your score';
}
}
}
savescore.php
id のボタンをクリックすると、スコアが PHP プログラムに渡されますsaveScoreButton
。次に、PHP プログラムは を使用してそれを取得する必要があります$_GET["score"]
。
ユーザーが javascript を理解し、何が起こっているかを理解していれば、これは簡単にだまされることに注意してください。ブラウザのアドレス バーに「savescore.php?score=100」と入力するだけです。安全なソリューションが必要な場合、javascript はユーザーの回答のみを PHP プログラムに渡す必要があります。PHP プログラムはテストをマークし、結果を合計します。
GET の代わりに POST メソッドを使用して値を渡すこともできます。
...
r.open('post', 'savescore.php?score=' + score, true);
r.send('score=' + score);
...
次に、を使用して PHP プログラムでそれを取得し$_POST["score"]
ます。
コメントで述べたように、スコアを比較/集計したい場合savescore.php
は、データベースまたはファイルに値を保存して、 で取得できるようにする必要がありますadmin.php
。
Javascript はクライアント側で実行され、PHP はサーバー側で実行されます。そのため、PHP スクリプトによって返される HTML ページを変更して結果を表示するコードを JavaScript で作成する必要があります。
すべてのファイルがクライアントに読み込まれると、個別の js ファイルという概念はなくなります。クライアント (ブラウザ + JavaScript) とサーバー (php) は 2 つの別個のエンティティです。データが 1 つの場所にある場合、他の場所にはその存在の手がかりがありません。2 つのロケーション間の通信方法として ajax を調査するか、フォームを使用してページをサーバーに送信します。
サーバーとブラウザーの通信方法の概要:ブラウザーと Web サーバー間の通信はどのように行われるのでしょうか?
フォーム送信の基本: http://www.htmlgoodies.com/tutorials/forms/article.php/3479121/So-You-Want-A-Form-Huh.htm
Ajax の基本: http://webdesign.about.com/od/ajax/a/aa101705.htm Ajax と PHP: http://www.switchonthecode.com/tutorials/simple-ajax-php-and-javascript