0

functions.js というファイルがあり、学生がテストで取るスコアを計算する関数 sum があります。管理者が各学生のすべてのスコアを確認できるように、その合計をファイル admin.php の表に出力したいと考えています。

では、sum 変数を別のファイルに渡すにはどうすればよいでしょうか。onlick アクションを使用して関数を呼び出してみましたが、うまくいきませんでした

4

3 に答える 3

1

私はあなたがおそらくこのようなものが欲しいと思います

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.phpid のボタンをクリックすると、スコアが 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

于 2013-01-11T23:33:14.667 に答える
1

Javascript はクライアント側で実行され、PHP はサーバー側で実行されます。そのため、PHP スクリプトによって返される HTML ページを変更して結果を表示するコードを JavaScript で作成する必要があります。

于 2013-01-11T23:05:12.777 に答える
1

すべてのファイルがクライアントに読み込まれると、個別の 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

于 2013-01-11T23:14:00.463 に答える