プロが教えるわが家の防犯対策術!

ホームページビルダー10を使用して、eラーニングのテストを作成しています。
この中に受講者が回答後、スコアと合否を管理者にメールで送信する機能があるのですが
これをスコアと合否だけでなく、各問題における正誤も同時に送信するようにはできないでしょうか。
素人なりにIE8の開発者ツールでデバッグしながら流れを追っているのですが、難しいです。
やはりJavaScriptの高度な知識が必要なのでしょうか・・・
(プログラムは趣味でVB6を少しやっていた程度なのです。)
JavaScriptはこれから勉強しようと思いますが、
ホームページビルダーとJavaScriptにお詳しい方がいらっしゃれば、ご意見をいただきたいと思います。
急ぎではありませんのでお暇なときによろしくおねがいします。

A 回答 (1件)

>スコアと合否を管理者にメールで送信する機能があるのですが~~


どうやってスコアをつけているのか不明ですが、これが出来ているのですから、各問題の回答も送れるはずでは?

どこかで、各回答の正誤を見てスコアをつけているでしょうから、そのときに回答(あるいは正誤)を控えておくなりして、送信時にいっしょに送るようにすれば可能だと思われます。

この回答への補足

最善ではないかもしれませんが自己解決しました!
ありがとうございました!
誤の問番号だけわかれば良いので、一応このようにしました。

htmlファイルに以下を追加
<INPUT type="hidden" name="Wrong" value="">

HpbELTest80.jsに以下を追加
(score += sc;の下に)
if (objQ.result == false) {
   wrong += "問"+ (i+1) + ","
}

(送信時に)
resultform.Wrong.value = this.data.wrong;

補足日時:2009/10/09 16:44
    • good
    • 0
この回答へのお礼

ありがとうございます。よくわからないのですが、「採点」ボタンを押したとき、↓の辺りで回答を控えたりスコアを加算したりしてると思うのですが(正解だった場合obj.result = trueになる)、それを「送信」ボタンを押したときに送る方法が見当つかないのです・・・
ゆっくり勉強していくしかないでしょうかね。
//----------------------
// for Checking Answers
//----------------------
this.check = function(){
var score = 0;
var nQ = this.data.questions.length;
for(var i=0; i<nQ; i++){
var objQ = this.data.questions[i];
var func = eval("this.checkEach" + objQ.type);
if(typeof func == "function"){
var id = this.data.idPrefix + (i+1).toString();
var sc = func(this.doc, objQ, id);
score += sc;
// show result
this.doc.fShowAns = this.data.showAnsEach;
this.doc.bShowAns = this.data.showAnsEach;

this.doc.showResultEach(objQ, id, sc>0 ? true : false);
(中略)
this.checkEachSelection = function(doc, obj, id)
{
obj.score = 0;
if(obj.single){
// Single Selection
obj.result = false;
var ansObj = doc.getQ(id);
var ans;
for(var i=0; i<ansObj.length; i++){
if(ansObj[i].checked)
ans = ansObj[i].value;
ansObj[i].disabled = true;
}
if( ans == obj.answer ){// judge
obj.score = obj.gain;
obj.result = true;
}
(後略)

お礼日時:2009/10/09 13:44

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!