アプリ版:「スタンプのみでお礼する」機能のリリースについて

以前、質問させていただいた内容の続きです。

とりえあえず、javascriptでアンケート型のものが作れたのですが、複数のページのアンケート結果を最後のページで表示することができません。

つまり、アンケートが複数にわたって存在し、そのアンケートの総得点が最後のページに出るようにしたいのです。

どなたか教えてください。お願いします。

A 回答 (2件)

訂正。


よく考えれば、URLのバイト数は、チャットルームで1kb以上のサイズになることもあるので、数kbなら大丈夫かも。
    • good
    • 0

<form action="page2.html" method="GET">


<input type="text" name="user">
<input type="text" name="age">
<input type="submit">
</form>

このフォームを送信すると、page2.htmlの中で、window.location.searchでデータを取得出来ます。
&で分割し、それぞれを=で分割してください。

var allDataes={};

var src=location.search;
if(src.indexOf('?')!=-1)
src=src.substring(src.indexOf('?')+1);
var lines=src.split('&');
for(var i=0,k,v,ln;i<lines.length;i++){
ln=lines[i].split('=');
k=decodeURIComponent(ln[0]);
v=decodeURIComponent(ln[1]);
allDataes[k]=v;
}

document.writeln('名前 : '+allDataes['user']+'<br>');
document.writeln('年齢 : '+allDataes['age']+'<br>');

エラーチェックしてません
PerlのCGI.pmやCのcgicと同じです。

データサイズ(URLの文字数)が256バイトを超えるようなら、
cookie(サイズ制限はブラウザ依存)を使ったり、POSTで送信してCGIアプリケーションを使った方が良いです。
ブラウザは数十kbのURLに対応していますが、経路が対応していない可能性があり、
古いプロクシとかを使っている人がいると、データがとぎれることがあります。
(セキュリティー上、そんな古いソフトを使ってる人はいないと思いますが、サーバー状況はさっぱりわかりません)

decodeURIComponentはSafari1.0、MacIEなどで使用出来ませんが、escape/unescapeを駆使すればその代わりに使えます。
今はむしろPHPが主流ですね。
サイズ制限やデコードを気にせず、$_GET['user']や$_POST['user']で取得できます。
    • good
    • 0

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