いつもお世話になっております。
ご教示お願い致します。
<input type="text" name="uname">
に、名前を記憶させておきたいのですが、
どのようにすればいいのでしょうか??
現時点で
名前入力→特定の位置にあいさつみたいな感じで出力
というのまで、あるサイトを参考にできたのですが、
テキストに出力が
いろんなサイトを見て参考にしてみているものの
上手いこといきません・・
--------------test.pl--------------
#!/usr/bin/perl
print "Content-type: text/html; charset=UTF-8\n\n";
print <<END;
<!DOCTYPE>
<html>
<head>
<meta name="robots" content="noindex">
<title>テストページ</title>
<script type="text/javascript" src="test.js"></script>
</head>
<body>
<script language="JavaScript">
<!--
// 名前の呼び出し
name = loadCookie();
if(name == "") document.write("初めまして");
else document.write("ようこそ<FONT color=#990000>" + name + "</FONT>さん。");
//-->
</script>
<form name="form" action="#" method="post">
<input type="text" name="uname">
<input type="submit" name="send" value="送信" onClick="saveCookie(this.form.uname.value)">
</form>
</body>
</html>
END
exit;
1;
function saveCookie(dValue) {
cName = "uName="; // ユーザー名
cDays = 365; // データの保存日数
setPre = new Date();
setPre.setTime(setPre.getTime() + (cDays*1000*24*3600));
prd = setPre.toGMTString();
document.cookie = cName + escape(dValue) + ";expires=" + prd;
}
--------------test.pl--------------
--------------test.js--------------
function loadCookie() {
cData = "";
cName = "uName="; // ユーザー名
cCookie = document.cookie+";";
str = cCookie.indexOf(cName);
if(str != -1) {
end = cCookie.indexOf(";",str);
cData = unescape(cCookie.substring(str + cName.length, end));
}
return cData;
}
--------------test.js--------------
No.1ベストアンサー
- 回答日時:
こんな感じです
<script>
window.onload=function(){
var v=getCookie('uname');
document.querySelector('[name=uname]').value=v;
}
function save(n,v){
setCookie(n,v);
}
function setCookie(key,val,url){
tmp = key+"="+escape(val)+";";
tmp += "expires=Fri, 31-Dec-2030 23:59:59;";
if(url){
tmp += "domain="+getDomain(url)+";";
tmp += "path="+getDomainPath(url)+";";
}
document.cookie = tmp;
};
function getCookie(key){
tmp = document.cookie+";";
tmp1 = tmp.indexOf(key,0);
if(tmp1 != -1){
tmp = tmp.substring(tmp1,tmp.length);
start = tmp.indexOf("=",0);
end = tmp.indexOf(";",start);
return(unescape(tmp.substring(start+1,end)));
}
return("");
};
function delCookie(key){
expiredate = new Date();
expiredate.setYear(expiredate.getYear()-1);
tmp = key+"=;";
tmp += "expires="+expiredate.toGMTString();
document.cookie = tmp;
};
</script>
<input type="text" name="uname" onchange="save(this.name,this.value)">
ありがとうございます!
できました!
もう1つ教えてください・・・
tmp += "expires=Fri, 31-Dec-2030 23:59:59;";
これってここまでが期限ですよってことですか?
No.5
- 回答日時:
No.3です。
> 当ホームページに掲示板があり
ログインの無い(=利用者登録を必要としない)掲示板なのですね?
でしたら氏名ではなくニックネーム(=ハンドル名)を使用することとし(←ニックネーム欄に本名を使うかどうかは投稿者の自由)、Cookieにニックネームをセットすて返せばよいかと思います。
利用者が再度同掲示板を訪問するとそのCookieが付いて来るので、サーバ側の投稿画面を生成するプログラムは常に該当Cookieの取り出しを試み取得できればその値を該当欄の初期値としてセットし、取得できなければ空欄のままとするようにすればよいです。
ということでJavaScriptでCookieを扱う必要は無いです。
参考まで。
No.3
- 回答日時:
No.2です。
ちなみにJavaScriptで画面上の入力欄に初期値をセットする、しかもCookieから取得してセットするという仕様はちょっと考えると変です。必然性が無い。。。
なぜその画面を生成するhttpサーバー上のプログラムでセット出来ないのか?
なぜWebブラウザ上で動くJavascriptでセットせねばならないか?
参考まで。
ご回答ありがとうございます。
>>仕様を明確にする
すみません・・・
ただ、ちょっとその他についてがわからないです・・・
(理解力がない;;)
当ホームページに掲示板があり
↓
入力してもらう
↓
次回から同じ名前を入力しなくてもいいようにです
というようなことをしたかったのです。
No.2
- 回答日時:
> <input type="text" name="uname">
> に、名前を記憶させておきたいのですが、
> どのようにすればいいのでしょうか??
HTMLではそれは出来ません。
「記憶させておきたい」とは具体的にどのようなユーザインタフェースを作りたいのでしょう?
ご質問にあうるようなコードベースで話をするのではなく日本語(会話などで通常使用している言語)でそこをハッキリ記述することが大切です。つまり「仕様を明確にする」のです。
ある画面上の氏名欄にある値を入力して処理を終えた場合、次回以降に同じ画面を表示すると前回入力した値が初期値として表示されているということであれば、サーバー側のファイルやデータベースのテーブルにその値を保持しておくか、Cookieを利用して利用者のブラウザ側に保持させておくかです。
しかし、氏名ということですと実現方式として後者はまずあり得ないでしょう。Webブラウザとhttpサーバ間の通信がhttpsで暗号化されていたとしてもです。
どのようなWebサイトなのかわかりませんが、ログインがあるのであればhttpサーバーの後ろにはデータベースサーバーがあって利用者の情報を保持するテーブルがあるのが一般的ですから、ログイン情報をCookieか匿名変数で引き回し、その情報で利用者の情報を保持するテーブルを検索して氏名を取り出して画面生成時に該当フィールドの初期値としてセットすればよいだけでしょう。
参考まで。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- HTML・CSS ボタンをクリックした時に、入力フォームのすぐ下部に、「入力欄が空白です」というテキストメッセージが表 1 2022/04/27 16:25
- PHP 入力した部分を表示させたまま(保持)するにはどうすれば良いでしょうか? 1 2023/01/25 11:14
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
- JavaScript javascript作成してます。ラジオボタンで判定するコードを書いてます。 1 2023/07/18 11:03
- PHP PHPのエラーの解消法について教えて下さい。 1 2023/02/06 10:48
- JavaScript ①入力フォーム→②確認表示画面→③送信完了画面のコードを書いているのです、 入力フォームから受け取っ 2 2022/05/10 16:45
- PHP PHPでCookieを使った訪問回数について 1 2023/05/28 14:10
- JavaScript フォームが空欄の時にフォームの外をクリックすると、エラーが出るコードを調べています。 1 2023/06/25 11:51
- CGI perlで書いたcgiでsqliteの使い方を教えてください 2 2023/05/08 21:29
- JavaScript セレクトボックスを2つ設けて選択して初めてメッセを表示 1 2022/07/27 12:15
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
HTMLとJavaScriptで作った表示...
-
TextBoxに半角数字以外を入れた...
-
テキストエリアに履歴を残したい
-
javascriptのちょっとした動作...
-
イベント発生順序
-
【Javascript】(テキストボッ...
-
perl cgi文字化け解消方法と[1...
-
Request.Form(key)の中身をクリ...
-
テキストボックスに入力した色...
-
タイマーについて教えて下さい!!
-
jQueryのdatepickerの日付が選...
-
ページ間で変数を保持したい
-
blurイベントについて
-
GetElementByIdがうまく取得で...
-
開いたサブウインドウから値を...
-
フォームの内容でリンク先URLの...
-
return trueとreturn falseの用...
-
プルダウン 項目が多いので先頭...
-
テキストボックス入力を半角英...
-
【jQuery】input nameの文字列...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
HTMLとJavaScriptで作った表示...
-
GetElementByIdがうまく取得で...
-
tabindexの取得
-
TextBoxに半角数字以外を入れた...
-
JavaScriptで作ったアプリが正...
-
プルダウンで選択された値を別...
-
HTMLファイル同士での値渡し
-
フォームの内容でリンク先URLの...
-
ページ間で変数を保持したい
-
テキストボックスに初期値で1...
-
javascriptのちょっとした動作...
-
入力するテキストエリアをボタ...
-
jQueryのdatepickerの日付が選...
-
JSPでonChangeを強制発行するに...
-
マイナスなら赤字で表示したい...
-
大文字か小文字かを判断する方法
-
VBscriptの配列変数をJavascrip...
-
一部Enter無効化の方法を教えて...
-
テキストエリアに履歴を残したい
-
フォーカスが外れた時の入力チ...
おすすめ情報