cookie使用時にundefinedと表示される

このQ&Aのポイント
  • お申し込み用のフォームでcookieを使用したいと考えていますが、入力前に「undefined」という文字が自動で入力されます。
  • フォームのinputはidでcookieを記憶する方法を選んでいますが、「undefined」が入力されたままではなく空白にする方法がわかりません。
  • どうかお知恵をお借りできませんでしょうか。
回答を見る
  • ベストアンサー

cookie使用時にundefinedと表示される

お申し込み用のformを作成していてformの各inputやtextareaへcookieを使用したいと考えています。 添付しました画像ファイルがcookieスクリプトです。 formの仕様でnameではなくidでcookieを記憶する方法を選んだのですが 初期入力画面で入力前に下記の様な文字(※)が自動で入力されます。 ※「undefined」 formのinputは以下の様にしています。 >> <input type="text" size="25" name="お名前" id="name" /> >> <input type="text" size="20" name="フリガナ" id="furi" /> どうすれば、「undefined」が入力されたままではなく空白にできるか解決できず 途方に暮れています。 どうかお知恵をお借りできませんでしょうか。 ご教授、宜しくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • l27074
  • ベストアンサー率100% (5/5)
回答No.2

下記のようにするか function getCookie() {  if (document.cookie) { //←追加  …  } //←追加 } 下記のようにしてみるとどうでしょうか if (document.form.elements[i].id == elements[i]) {  if (cookie3[i]) { //←追加  …  } //←追加 }

i-love-fit
質問者

お礼

1番目の方法で「undefined」が表示されなくなりました。 まだまだ未熟なのでこれからも頑張っていこうと思います。 お礼と締め切りが遅くなりまして申し訳御座いませんでした。 又、困ったときはご教授お願いいたします。

その他の回答 (1)

  • fujillin
  • ベストアンサー率61% (1594/2576)
回答No.1

画像が読み取れないので、想像だけの回答ですが… スクリプトで最初(HTMLロード時)にcookieを読みに行って、そこに記入されているデータをform内に表示する仕様になっているのだと思います。 ただ、一番最初の閲覧時(cookieが未登録の時データがない)でも同じ処理をしてしまっているので、データが無い(=undefined)を記入しているのではないかと想像されます。 それなので、該当するcookieが無ければ処理を全体パスするようにするか、formに表示する際に「undefined」ならば何もしないというような分岐を追加してあげればよろしいのではないかと思われます。 (想像なので、はずれているかも知れません)

i-love-fit
質問者

お礼

fujillinさまのおっしゃる通りの流れになります。 画像でスクリプト投稿をすると読みづらくなるのですね・・・ 以後気をつけたいと思います。 お礼と締め切りが遅くなりまして申し訳御座いませんでした。 又、困ったときはご教授お願いいたします。

関連するQ&A

  • PHPでのCookie

    PHPでクッキーを使い、下記のような入力フォームを作りました。 form.phpで入力→form2.phpで正常出力出来るのですが、 form2.phpで一度更新しないと、結果が画面に表示されません。 これをform2.phpを開いた時点で表示されるようにするには、どのように書けばいいのでしょう。 後1つあります。form.phpで 「テスト&1」と書くと「テスト」としか表示されなく、&とそれ以降が記憶されません。 これはなぜでしょうか? お願いします。 【form.php】 <?PHP parse_str($_COOKIE["city"]); parse_str($_COOKIE["city_name"]); ?> <html> <form method="post" action="form2.php"> <?PHP echo "名前1<input type=text name=name1 maxlength=16 size=12 value=$set_name1> <BR>ID<input type=text name=p1 maxlength=8 size=6 value=$set1><BR><BR>"; echo "名前2<input type=text name=name2 maxlength=16 size=12 value=$set_name2> <BR>ID<input type=text name=p2 maxlength=8 size=6 value=$set2>"; ?> <input type="submit" value="実行"> </form> </html> 【form2.php】 <?php if ($_POST) { $city1 = $_POST["p1"]; $city2 = $_POST["p2"]; $city_name1 = $_POST["name1"]; $city_name2 = $_POST["name2"]; setcookie ("city", "set1=$city1&set2=$city2",time()+3600*24*90); setcookie ("city_name", "set_name1=$city_name1&set_name2=$city_name2",time()+3600*24*90); } parse_str($_COOKIE["city"]); parse_str($_COOKIE["city_name"]); echo $set_name1; echo $set1; echo $set_name2; echo $set2; ?>

    • ベストアンサー
    • PHP
  • phpで作成した携帯サイトのメールフォームがPCからは正常に送信されるのに、携帯から送信すると届きません。

    ソースindex <form action="kakunin.php" method="POST" > お名前 <input name="name" id="name" type="text"> フリガナ<input name="furi" id="furi" type="text"> ご住所<input name="add" id="add" type="text"> TEL<input name="tel" id="tel" type="text"> FAX<input type="text" name="fax"> E-MAIL <input name="mail" id="mail" size="30" type="text"> お勤め先名 <input name="k_name" id="k_name" type="text"> 勤続年数<input type="text" name="nensu"> 年収<input type="text" name="nenshu"> ご要望、ご質問等<textarea rows="5" cols="10" name="yobo"></textarea> <input type="submit" value="送信する"> </form> ---------------確認画面----------------------- <?php $name =$_POST[name]; $furi =$_POST[furi]; $add =$_POST[add]; $tel =$_POST[tel]; $fax =$_POST[fax]; $mail =$_POST[mail]; $k_name =$_POST[k_name]; $nensu =$_POST[nensu]; $nenshu =$_POST[nenshu]; $yobo =$_POST[yobo]; if($name == ""){ $err_massage .= "お名前を入力してください。"; } if($furi == ""){ $err_massage .= "フリガナを入力してください。"; } if($tel == ""){ $err_massage .= "TELを入力してください。"; } if($mail == ""){ $err_massage .= "E-MAILを入力してください。<br />"; }else{ if(ereg("([0-9a-zA-Z._-]{1,})@([0-9a-zA-Z.-_]{1,})",$mail)){ }else{ $err_massage .= "E-MAILを正しく入力してください。"; } } if($err_massage != ""){ print <<<ERR $err_massage <a href="index.html">戻る</a> ERR; }else{ print <<<FORM <form action="sosin.php" method="post"> お名前 $name フリガナ $furi ご住所 $add TEL(携帯可) $tel FAX $fax E-MAIL $mail お勤め先名 $k_name 勤続年数 $nensu 年収 $nenshu ご要望、ご質問等 $yobo <input name="name" value="$name" type="hidden"> <input name="furi" value="$furi" type="hidden"> <input name="add" value="$add" type="hidden"> <input name="tel" value="$tel" type="hidden"> <input name="fax" value="$fax" type="hidden"> <input name="mail" value="$mail" type="hidden"> <input name="k_name" value="$k_name" type="hidden"> <input name="nensu" value="$nensu" type="hidden"> <input name="nenshu" value="$nenshu" type="hidden"> <input name="yobo" value="$yobo" type="hidden"> <input type="submit" value="送信する"> </form> FORM; } ?> -送信画面- <?php $name =$_POST[name]; $furi =$_POST[furi]; $add =$_POST[add]; $tel =$_POST[tel]; $fax =$_POST[fax]; $mail =$_POST[mail]; $k_name =$_POST[k_name]; $nensu =$_POST[nensu]; $nenshu =$_POST[nenshu]; $yobo =$_POST[yobo]; mb_language("Ja") ; mb_internal_encoding("shift-JIS") ; $from_mail = '送信メールアドレス'; $msg = "【タイトル】 "."お名前:"."$name"." フリガナ:"."$furi"." 住所:"."$add"." TEL:"."$tel"." FAX:"."$fax"." E-MAIL:"."$mail"." お勤め先名:"."$k_name"." 種類:"."$shurui"." 勤続年数:"."$nensu"." 年収:"."$nenshu"." お問合せ内容:"."$naiyo_out"." ご要望・ご質問等他:"."$yobo"; $sb = "【タイトル】"; $rcd = mb_send_mail($from_mail, $sb, $msg, "From:$mail"); ?>

    • 締切済み
    • PHP
  • undefinedを表示させない方法はありますか?(javascript)

    undefinedを表示させない方法はありますか?(javascript) コードを入力して、文字を表示させているのですが、 以下のソースになります。 その時に、イベント処理をonkeyupにしていて、 入力しているのと同時に表示させています。 その時に、1とか10とか入力している途中に、 undefinedが表示されてしまいます。 空白でもいいのですが、表示させない方法はありますか? 教えて下さい。 <SPAN>とinnerHTMLを使用しています。 <HTML> <BODY> <SCRIPT LANGUAGE=JavaScript> <!-- function sample(f) { var sample = new Array() sample['100'] = 'りんご' ; sample['101'] = 'オレンジ' ; sample['102'] = 'メロン' ; document.getElementById('ans').innerHTML = sample[f.code.value] ; } // --> </SCRIPT> <FORM NAME=f> <INPUT NAME=code SIZE=4 onkeyup="sample(this.form)"> <SPAN ID="ans"></SPAN> </FORM> </BODY> </HTML>

  • Cookieについて教えてください!!

    依頼を受付できるHPフォームをASPにて作成しておりますが、、 1回入力した情報を次回より入力の省略が出来る、Cookieを活用したいのですが、I/Eを閉じればその情報自体破棄されるようです。 閉じても情報が破棄しないようにするにはどうしたらよいのでしょうか。 私が入力しているものは、、、 <INPUT size="35" type="text" maxlength="35" name="name" value="<%= Request.Cookies("ASP")("name") %>">こういった感じです。 次のページには確認画面で、下記のように作ってあります。 cooktmp1=Request.Form("name") Response.Cookies("ASP")("name") = cooktmp1

    • ベストアンサー
    • HTML
  • ブログフォームが表示されない!

    いつも大変お世話になり誠にありがとうございます。 標記の件。 form.htmlだと表示はされます。 しかし、その後のインプットの表示がされません。 index.phpでOKだったのですが、ソースコードが 表示されるようになってしまいました。 index.phpのソースコードは下記です。 どこが間違っているのでしょうか? ご回答のほど宜しくお願い申し上げます。 <?php if( $mode=='input'){ ?> <h2>ブログフォーム</h2> <form action="blog_create.php" method=_POST> <input type="text" name="address" value="" /> <input type="text" name="name" value="ペンネーム"/> <input type="text" name="title" value="タイトル"/> <input type="text" name="name" value="カテゴリー"/>   <textarea name="content" id="content" cols="50" rows="80">ブログ本文</textarea><br> <input type="submit" value="確認画面へ"> </form>

    • ベストアンサー
    • PHP
  • jquery.cookie.jsの使い方が分かりません。

    jquery.cookie.jsの使い方が分かりません。 Web経験浅く、質問の仕方や内容に不足や不備があるかもしれませんが、ご容赦ください。 入力フォームでcookie.jsを使いたいのですが、どのようにスクリプトを書けばよいのか分かりません。 単純に、入力フォームに入力したデータを保存したいだけなのですが・・・。 いろいろ調べてみたいのですが、分かりやすいソースサンプルを見つけることが出来ず、困っております。 どなたか教えて下さいませんでしょうか? ちなみに、ソースサンプルは以下の通りです。 ------------------------------------------------------------------ <html> <head> <title>テスト</title> <script type="text/javascript" src="jquery.js"></script> <script type="text/javascript" src="jquery.cookie.js"></script> <script type="text/javascript"> ????????????ここのスクリプトをどうしたらよいのか分かりません。 </script> </head> <body onload="getck()"> <form name="input">   性別:<input type="radio" name="sex" value="男性" />男性/      <input type="radio" name="sex" value="女性" />女性<br />   名前:<input type="text" name="name" /><br />   住所:<input type="text" name="add" /><br />   <input type="button" value="記録" onClick="setck()" /><br />   <input type="button" value="呼び出し" onClick="getck()" /><br /> </form> </body> </html> ------------------------------------------------------------------ 上記ソースではボタンクリックで呼び出しとしていますが、実際には、入力したフォームのページ(入力ページ1)とは別のフォームページ(入力ページ2)で、入力データを再利用する作りとなります。 要するに、入力ページ2を呼び出すと、入力ページ1で入力したデータが入力されている、という状態を求めております。 なので、<body onload="getck()">としてあります。 (テストも兼ねたサンプルソースなので、1ファイルで全てチェックできるようにしています) 説明が分かりにくいところもあるかと存じますが、何とぞご教示いただけますよう、宜しくお願い申し上げます。

    • ベストアンサー
    • AJAX
  • textbox間の結合時、空白の時は、スペースを省きたい

    <script type="text/javascript"> <!-- function ketugou(){     document.f.q.value=document.f.t1.value+" "+document.f.t2.value+" "+document.f.t3.value+" "+document.f.t4.value+" "+document.f.t5.value; } //--> </script> <form name="f"> キーワードを入力:<br> <input type="text" size="55" name="t1"><br> <input type="text" size="55" name="t2"><br> <input type="text" size="55" name="t3"><br> <input type="text" size="55" name="t4"><br> <input type="text" size="55" name="t5"><br> <input type="button" name="connect" value="結合" onClick="ketugou()"><br> 結合時の内容を表示:<br> <input type="txt" name="q" size="55" maxlength="255" ><br> </form> で、空白のテキストボックスの場合は、スペース(" ")なしで、 結合させたいんですが、どうしたら、良いのでしょうか?

  • チェックボックスがundefinedと表示します

    下記のように入力すると、チェックボックスがundefinedと表示されてしまいます。 どのように変更すればよいのでしょうか? 教えてください <script type="text/javascript"> <!-- function CheckForm() { //****************送信内容の取得**************** var data = new Array(); var namesArray = new Array( 'Name', 'Sex', 'Age', 'Address' , 'Tel', 'Email'); var f = document.forms[0]; for (var i in namesArray) { var n = namesArray[i]; if (n == 'Sex') { data[n] = ''; for (var j = 0; j < f[n].length; j++) { if (f[n][j].checked) { data[n] = f[n][j].value; break; } } } else { data[n] = f[n].value; } } //****************名前のチェック**************** if (data.Name.length == 0) { alert('名前が入力されていません。'); f.Name.focus(); return false; } //***********確認ダイアログによる確認*********** return confirm('下記の内容で送信して' + 'よろしいですか?\n\n' + '選んでください:\t\t' + data.Course1 + '\n' + data.Course2 + '\n' + data.Course3 + '\n' + '名前:\t\t' + data.Name + '\n' + '性別:\t\t' + data.Sex + '\n' + '年齢:\t\t' + data.Age + '\n' + '住所:\t\t' + data.Address + '\n' + '電話番号:\t' + data.Tel + '\n' + 'E-Mailアドレス:\t' + data.Email); } //--> </script> <form action="/kantan-cgi/formmail.pl?id=*********" method="post" onSubmit="return CheckForm();"> <dl> <dt><span class="mainBp">【選んでください】</span></dt> <dd><input type="checkbox" name="Course1" value="コース1" />コース1 <input type="checkbox" name="Course2" value="コース2" />コース2 <input type="checkbox" name="Course3" value="コース3" />コース3</dd> <dt>名前(必須)</dt> <dd><input type="text" name="Name" /></dd> <dt>性別</dt> <dd> <input type="radio" name="Sex" value="男性" />男 <input type="radio" name="Sex" value="女性" />女 </dd> <dt>年齢</dt> <dd><input type="text" name="Age" size="2" /></dd> <dt>住所</dt> <dd><input type="text" name="Address" size="70" /></dd> <dt>電話番号</dt> <dd><input type="text" name="Tel" /></dd> <dt>E-Mailアドレス</dt> <dd><input type="text" name="Email" size="50" /></dd> </dl> <input type="submit" value="送信" /> </form>

  • FORM ACTION~POST使用時について

    こんにちは。お世話になります。 cgiファイルから、FORM ACTION~POST⇒submitで自分自身を呼び出す時に、INPUT TYPE=\"text\"を11個間に入れると呼び出せません。 (10個の場合はうまくいきます) FORM ACTION~POSTは文字数制限がないと、本を見てもかいてあるのですが、なにか理由があるのでしょうか。 ご存知の方、ご教授願えたら幸いです。 よろしくお願いいたします。 抜粋したソースを下記に記します。 ------------------------------------------------------------- #障害対応情報項目テキストボックス print "<H5>【障害対応情報項目】</H5>\n"; print "<FORM ACTION=\"../cgi-bin/serch_e-001.cgi\" METHOD=\"POST\">\n"; print "<INPUT TYPE=\"text\" NAME=\"S1-2\" VALUE=\"$$selectdata[0][7]\" SIZE=30>\n"; print "<INPUT TYPE=\"text\" NAME=\"S1-3\" VALUE=\"$$selectdata[0][8]\" SIZE=30>\n"; print "<INPUT TYPE=\"text\" NAME=\"S1-4\" VALUE=\"$$selectdata[0][9]\" SIZE=30>\n"; print "<INPUT TYPE=\"text\" NAME=\"S1-5\" VALUE=\"$$selectdata[0][10]\" SIZE=30>\n"; print "<INPUT TYPE=\"text\" NAME=\"S1-6\" VALUE=\"$$selectdata[0][11]\" SIZE=30>\n"; print "<INPUT TYPE=\"text\" NAME=\"S1-7\" VALUE=\"$$selectdata[0][12]\" SIZE=30>\n"; print "<INPUT TYPE=\"text\" NAME=\"S1-8\" VALUE=\"$$selectdata[0][13]\" SIZE=30>\n"; print "<INPUT TYPE=\"text\" NAME=\"S1-9\" VALUE=\"$$selectdata[0][13]\" SIZE=30>\n"; print "<INPUT TYPE=\"text\" NAME=\"S1-13\" VALUE=\"$$selectdata[0][18]\" SIZE=30>\n"; print "<INPUT TYPE=\"text\" NAME=\"S1-14\" VALUE=\"$$selectdata[0][19]\" SIZE=30>\n"; print "<INPUT TYPE=\"text\" NAME=\"S1-15\" VALUE=\"$$selectdata[0][19]\" SIZE=30>\n"; print "<INPUT TYPE=\"submit\" NAME=\"button\" VALUE=\"新規検索\">\n"; print "<INPUT TYPE=\"submit\" NAME=\"button\" VALUE=\"更新\">\n"; print "<INPUT TYPE=\"hidden\" NAME=\"no\" VALUE=\"$$selectdata[0][0]\">\n"; print "</FORM>\n"; ------------------------------------------------------------

    • ベストアンサー
    • Perl
  • name属性をperlに引き継ぎたい

    FORMタグを使って以下のようにCGIに処理を引き継ぎます。 <FORM METHOD="post" ACTION="./xxxx.cgi"> <INPUT name="フリガナ" size="30" type="text"> その場合、入力された値ではなく、name="フリガナ"の 「フリガナ」をperlで受け取りたいのですが、方法がわかりません。 ご存知の方ご教示の程よろしくお願いします。