4つの選択肢の中から一つを選ばせて、その結果を集計して、結果によって違うページに飛ぶスクリプトを作っています。

その中で4つの選択肢をランダムに表示させる方法がわかりません。

Q1赤青緑黄,Q2赤青緑黄,Q3赤青緑黄… Q5赤青緑黄と現在なっていますが、
Q1緑黄赤青,Q2赤緑黄青,Q3青緑赤黄… Q5赤青緑黄という感じにしてもちゃんと集計してくれるようにしたいです。
以下のプログラムまでできています。アドバイスお願いします。
<title>好きな色</title>
<script type="text/javascript"><!--
function count(f){
var aka = 0;
var ao = 0;
var yellow = 0;
var midori = 0;
for(var i=1; i<=10; i++){
if(f["q" + i][0].checked && f["q" + i][0].value=="1"){
aka++;
}
else if(f["q" + i][0].checked && f["q" + i][0].value=="2"){
aka--;
}
else if(f["q" + i][1].checked && f["q" + i][1].value=="3"){
ao++;
}
else if(f["q" + i][1].checked && f["q" + i][1].value=="4"){
ao--;
}
else if(f["q" + i][2].checked && f["q" + i][2].value=="5"){
midori++;
}
else if(f["q" + i][2].checked && f["q" + i][2].value=="6"){
midori--;
}
else if(f["q" + i][3].checked && f["q" + i][3].value=="7"){
yellow++;
}
else if(f["q" + i][3].checked && f["q" + i][3].value=="8"){
yellow--;
}






}
if( aka > ao && aka > midori && aka > yellow){
location.href="01.html";
} else if( yellow > ao && yellow > midori && yellow > aka){
location.href="02.html";
} else if( ao > aka && ao > midori && ao > yellow){
location.href="03.html";
} else if( midori > ao && midori > aka && midori > yellow){
location.href="04.html";
} else {
location.href="05.html";
}
}
//-->
</script>
</head>
<body>
<center>
<form name="test">
<p>

<table border="1">
<tr>
<td>
Q1
</td>

<td>Yes</td>
<td>No</td></tr>
<br>

<td><label>赤</label></td>
<td><input type="radio" name="q1" value="1" /></td>
<td><input type="radio" name="q2" value="2" /></td></tr>



<td><label>青</label></td>
<td><input type="radio" name="q1" value="3" /></td>
<td><input type="radio" name="q2" value="4" /></td></tr>

<td><label>緑</label></td>
<td><input type="radio" name="q1" value="5"/></td>
<td><input type="radio" name="q2" value="6"/></td></tr>

<td><label>黄</label></td>
<td><input type="radio" name="q1" value="7"/></td>
<td><input type="radio" name="q2" value="8"/></td></tr>


</table>

<table border="1">
<tr>
<td>
Q2
</td>

<td>Yes</td>
<td>No</td></tr>
<br>

<td><label>赤</label></td>
<td><input type="radio" name="q3" value="1"/></td>
<td><input type="radio" name="q4" value="2"/></td></tr>


<td><label>青</label></td>
<td><input type="radio" name="q3" value="3" /></td>
<td><input type="radio" name="q4" value="4" /></td></tr>

<td><label>緑</label></td>
<td><input type="radio" name="q3" value="5"/></td>
<td><input type="radio" name="q4" value="6"/></td></tr>

<td><label>黄</label></td>
<td><input type="radio" name="q3" value="7"/></td>
<td><input type="radio" name="q4" value="8"/></td></tr>


</table>



<input type="button" value="採点" onclick="count(this.form)">
</form>
</center>
</body>
</html>

このQ&Aに関連する最新のQ&A

A 回答 (2件)

もし、てーぶるが、こんなだったら。


<table border="1" id="TQ1" summary="問題1">
 <tr>
  <th>Q1</th>
  <th>Yes</th>
  <th>No</th>
 </tr>
 <tr>
  <td><label>1赤</label></td>
  <td><input type="radio" name="q1" value="1" /></td>
  <td><input type="radio" name="q2" value="2" /></td>
 </tr>
  <td><label>2青</label></td>
  <td><input type="radio" name="q1" value="3" /></td>
  <td><input type="radio" name="q2" value="4" /></td>
 </tr>
 <tr>
  <td><label>3緑</label></td>
  <td><input type="radio" name="q1" value="5"/></td>
  <td><input type="radio" name="q2" value="6"/></td>
 </tr>
 <tr>
  <td><label>4黄</label></td>
  <td><input type="radio" name="q1" value="7"/></td>
  <td><input type="radio" name="q2" value="8"/></td>
 </tr>
</table>

ならびかえるのは、
function test(id) {
 var i = 0, o;
 var tbody = document.getElementById(id).getElementsByTagName('tbody')[0];
 while (o = tbody.childNodes[i]) if (3 == o.nodeType) tbody.removeChild(o); else i++;
 while (--i) tbody.appendChild(tbody.childNodes[1+Math.random()*i|0]);
}
かもしれないじょ。
つかいかたは、
test('TQ1');
なかんじ。
ばぶぅ~
    • good
    • 0

おは。

そのまえに、てーぶるのなりたちが、へんだじょ!
<br>がへんなとこにあったり、
<tr>がないのに</tr>はあったりと・・・
</tr>をはぶくならみたことあるけど。
ばぶぅ~。

そうそう。
かいとうが、おなじいろで YesとNoでも いいんだよね! ばぶ。
    • good
    • 0

このQ&Aに関連する人気のQ&A

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

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Q数字をランダムに表示してくれる機械がほしいです。

タイトルにもありますが、ビンゴゲームで使う機械のような、好きな範囲で、好きな個数の

数字をランダムに表示してくれる機械などありますでしょうか?

上記の機能だけならエクセルの関数を使って簡単に再現できるのですが、

なるべくパソコンを使わない、コンパクトで電気をあまり使わない形で使いたいのです。

また、商品として売られていないのであれば、そういった機械をオーダーメイドで作ってくれる

お店などありませんでしょうか?

以上、どなたかご教示頂きますよう、お願い致します。

Aベストアンサー

非安定マルチバイブレータかCMOSインバーターでクロックを得て、それを不定期に断続してカウンターで計測すれば目的は達せられます、

ヤフー知恵袋の工学のカテゴリーで、CMOSロジックicで乱数を発生させるや、電子サイコロや7セグメントLEDで表示させるスロットマシンの作り方等で質問をしてみたら如何でしょうか?

ただし、回答がもらえるまでくだらない事で荒れるのがヤフーですのでエラソーに回答をするバカや基地外は適当にあしらって下さい、

とりあえずは解決へのヒントまで…

Qで、Q1に後で値を設定して表示するには

お世話になります。
<input type="text" name="Q1">で、Q1に後で値を設定して表示するにはどうしたら良いものでしょうか。
name="Q1"
と、しているので、
onMousedown="function()"
で、nameでしてしたエリアに値を書き込めば、できると思うのですが、
このfunction()をどのように書いたらよいものか、いろいろ調べてもわかりません。
何とかご教示願えないでしょうか。
よろしくお願いします。

Aベストアンサー

javascriptを利用することで出来ます。
こんな感じで動くでしょう。
ちなみにテキストボックスなどをjavascriptで操作する場合は
idをつけておくと便利です。

これ以上をやりたいというのであれば
参考URLなど見て勉強してみてください
<html>
<head>

</head>
<body>

<input type="text" id="Q1" name="Q1" onmousedown="hoge()">
</body>
<script type='text/javascript'>
function hoge()
{
Q1.value = ""; //""のなかに設定する値
}
</script>

参考URL:http://www.parkcity.ne.jp/~chaichan/src/javasc21.htm

Qランダム表示文字について

if ( open( IN,"hoge.txt" ) ) {
  @line = <IN>;
  close( IN );
} else {
  exit;
}

$random1 = @line[rand(@line)];
$random2 = @line[rand(@line)];
$randam3 = @line[rand(@line)];

テキストファイルから1行文字をランダムに表示するプログラムを書き実行できたのですが、このままだとrandom1,2,3の変数に同じものが入ってしまう可能性があります。
これで全て違うものが入るようなプログラムを書きたいのですが、そのようなことは可能でしょうか?

Aベストアンサー

if ( open( IN,"hoge.txt" ) ) {
  @line = <IN>;
  close( IN );
} else {
  exit;
}


splice()関数というのが使って実現してみました。
splice(@line, 5, 1) とすれば、@line,の5番目の1個分の要素を削除することを意味します。そしてこの関数は取り除かれた部分のリストを返します。
こちらで、勝手ながら$randam1等を$randam[1]と配列にしてしまえば、

for($i=1; $i<=3; $i++){

my $n = rand(@line);#乱数

$random[$i] = splice(@line,$n,1);

}

forループ使わないで、runner_h_aさんのソースの通りランダムに取得する行が3つくらいで少ない場合は、

$random1 = splice(@line,rand(@line),1);
$random2 = splice(@line,rand(@line),1);
$randam3 = splice(@line,rand(@line),1);

でいけると思いますが、動作確認はしてません。

if ( open( IN,"hoge.txt" ) ) {
  @line = <IN>;
  close( IN );
} else {
  exit;
}


splice()関数というのが使って実現してみました。
splice(@line, 5, 1) とすれば、@line,の5番目の1個分の要素を削除することを意味します。そしてこの関数は取り除かれた部分のリストを返します。
こちらで、勝手ながら$randam1等を$randam[1]と配列にしてしまえば、

for($i=1; $i<=3; $i++){

my $n = rand(@line);#乱数

$random[$i] = splice(@line,$n,1);

}

forループ使わないで、runne...続きを読む

Qの違い

現在jQueryを使ったプログラムをしていて、気になった点があったので質問させていただきました。

具体的には
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js" charset="utf-8"/>
<script type="text/javascript">
function show() {
}
</script>

こんなソースを書いていましたが、showメソッドが認識されていませんでした。

そこで
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js" charset="utf-8"></script>
とかくと、後ろのメソッドも認識されました。

ここで疑問なのは</>と</script>の違いです。
この2つは何がちがうのでしょうか?

現在jQueryを使ったプログラムをしていて、気になった点があったので質問させていただきました。

具体的には
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js" charset="utf-8"/>
<script type="text/javascript">
function show() {
}
</script>

こんなソースを書いていましたが、showメソッドが認識されていませんでした。

そこで
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1...続きを読む

Aベストアンサー

https://www.google.com/search?q=HTML+%E7%A9%BA%E8%A6%81%E7%B4%A0
違いっていうか。
<hoge />って書いていいのは「何もはさまないタグ」だけ。<img><link><br>…
<script>は、確かにsrc属性を設定すれば何もはさまなくはなりますが、「はさまないタグ」ではないから「/>」で終わることはできない。<img /> を<img></img>にすることはできるが逆はできません。

試してないから分からないが、質問文の記述では最初の間違ったタグが開始タグとして認識され以降3行がスクリプトとして認識され、結果文法エラーとなっているのでは。というか、その書き方でほかの部分のソースの解釈に影響出てないんですか?

Q小文字、大文字、記号をランダム表示

このプログラムは英大文字をランダムに表示するプログラムなのですが、これを小文字と記号も合わさった形で出力されるように改造するにはどうしたらいいでしょうか。コードを添えて下さると助かります。

import java.util.Random;

public class Aruf{
public static void main(String[] args) {

//Randomクラスのインスタンス化
Random rnd = new Random();

//変数の宣言
int ran;
int a;
char c;

//10回繰り返す
for(int b=0;b<10;b++){
//0~25の乱数を作成
ran = rnd.nextInt(26);

//65を足して65~90にする
a = 65 + ran;

//charに型変換
c = (char)a;
//表示
System.out.print(c);
}
}
}

このプログラムは英大文字をランダムに表示するプログラムなのですが、これを小文字と記号も合わさった形で出力されるように改造するにはどうしたらいいでしょうか。コードを添えて下さると助かります。

import java.util.Random;

public class Aruf{
public static void main(String[] args) {

//Randomクラスのインスタンス化
Random rnd = new Random();

//変数の宣言
int ran;
int a;
char c;

//10回繰り返す
for(int b=0;b<10;b++)...続きを読む

Aベストアンサー

//0~51の乱数を作成
ran = rnd.nextInt(52);

if(ran <= 25){
 //65を足して65~90にする 大文字
 a = 65 + ran;
}
else{
 //71を足して97~122にする 小文字
 a = 97 - 26 + ran;
}

Q 内に書くことはできません」

元アルバイト先に頼まれてサイトを作り運営しているのですが、わからないことがあるので教えて下さい。

サイトはXHTML1.0 Transitional で作っており、ここに、http://fmono.sub.jp/ の「w3Analyzer」を組み込みアクセス解析をしています。サイト自体もこのアクセス解析も正常に動作しています。
ただ、このサイトをhttp://openlab.ring.gr.jp/k16/htmllint/htmllint.htmlで構文チェックすると、アクセス解析のタグにエラー「<img>を~行目の<script>~</script>内に書くことはできません。」が表示されてしまいます。
エラーが表示されるタグは下記のようなものです。

<script type="text/javascript">
document.write('<img src="http://~/w3a/writelog.php?ref='+document.referrer+'" width="1" height="1" />');
</script> >

アクセスログは普通に取得できているので問題ないのですが、もし上記エラーを回避する方法があればご教授下さい。よろしくお願いします。

元アルバイト先に頼まれてサイトを作り運営しているのですが、わからないことがあるので教えて下さい。

サイトはXHTML1.0 Transitional で作っており、ここに、http://fmono.sub.jp/ の「w3Analyzer」を組み込みアクセス解析をしています。サイト自体もこのアクセス解析も正常に動作しています。
ただ、このサイトをhttp://openlab.ring.gr.jp/k16/htmllint/htmllint.htmlで構文チェックすると、アクセス解析のタグにエラー「<img>を~行目の<script>~</script>内に書くことはできません。」が表示されてし...続きを読む

Aベストアンサー

XHTML には「ホンモノの XHTML」と「ニセモノの XHTML」があります。「ホンモノの XHTML」とは application/xml または application/xhtml+xml として識別されるもの、「ニセモノの XHTML」は text/html で識別されるものです。

※実際にはどちらも本物です。ここでは「HTML 互換として処理される XHTML」を「ニセモノ」、「XML として解析される XHTML」を「ホンモノ」と、カタカナ&カッコ付きで書いています。

「ホンモノの XHTML」として見れば、質問文のソースは妥当性違反です。なぜなら、img 要素のタグがエスケープされていないため、これがスクリプトの一部ではなく文書構成要素だと判断されるからです。XHTML 1.0 のスキーマは、script 要素内に img 要素が出現することを許していません。もちろん、スクリプトとしても正しく動作しません。

従って、XML のルールに従ってエスケープする必要があります。特に「<」と「&」は必ずエスケープしなければなりません。

document.write('&lt;img .... />');

ですが面倒なことに、「ニセモノの XHTML」ではこれが動作しなくなります。「ニセモノの XHTML」は、HTML との互換性のために script 要素内の「<」「&」をうまく扱ってくれるのですが、それが仇となり、上記では「&lt;」が「<」に戻りません。

ならば、コメント区間にするのはどうでしょう。XML でもコメント内なら「<」「&」が現れても大丈夫です(ただし「--」だけは駄目です)。

<script type="text/javascript"><!--
document.write('<img .... />');
//--></script>

「ニセモノの XHTML」ならこれでも構いません。しかし、「ホンモノの XHTML」では、コメントは本当に破棄されてしまい、上記では動作すらしなくなります。

そこで、XML/HTML のルールを使わず、JavaScript のルールでエスケープすることを考えます。

document.write('\u003Cimg .... />');

これなら大丈夫でしょう。XML/HTML に限らず、言語が混在する際は必ず適切なエスケープを施す必要があります。エスケープを避けたければ外部スクリプトにして下さい。


なお、ここには別の問題があります。そもそも「ホンモノの XHTML」では、document.write を使用できません。これは HTML 互換の機能だからです(HTML5 に明記されています)。

XHTML を採用するのであれば、それが「ホンモノ」でも「ニセモノ」でも大丈夫なよう、document.write に頼らないコードを作成して下さい。あるいは try...catch で括るなどして、「ニセモノ」として処理されたときのみコードが動作するよう工夫して下さい。あるいはいっそ、XHTML を止めるのも 1 つの選択でしょう。

XHTML には「ホンモノの XHTML」と「ニセモノの XHTML」があります。「ホンモノの XHTML」とは application/xml または application/xhtml+xml として識別されるもの、「ニセモノの XHTML」は text/html で識別されるものです。

※実際にはどちらも本物です。ここでは「HTML 互換として処理される XHTML」を「ニセモノ」、「XML として解析される XHTML」を「ホンモノ」と、カタカナ&カッコ付きで書いています。

「ホンモノの XHTML」として見れば、質問文のソースは妥当性違反です。なぜなら、img 要素のタ...続きを読む


人気Q&Aランキング

おすすめ情報