クッキーを使用したデータの受け渡し方法とは?

このQ&Aのポイント
  • 既存のシステムにクッキーを使用してデータの受け渡しをしたい場合、どのような方法がありますか?
  • クッキーを読み書きしてデータを受け渡すためのJavaScriptの実装方法を教えてください。
  • クッキーに商品番号を書き込んで、注文画面でその番号を表示する方法について教えてください。
回答を見る
  • ベストアンサー

クッキーを使用してデータの受け渡しをしたい

よろしくお願いします。 既に稼動しているシステムの修正などを手がけていますが、全く素人です。 html内に、<script ・・>~~</script>でJavaScriptを埋め込んでクッキーを読み書きしてデータの受け渡しをしようとしています。 現在動いているものでは、商品案内画面から、注文画面に移りますが、そこでもう1度商品を選ばなければなりません。 そこで、案内画面htmlで、setcookieでクッキーに商品番号を書いて、注文画面htmlで、まず、scriptでgetcookieで得た値を、定義したフィールドに移しますが、さて、そのフィードを、html内で表示するには、どうしたらよいのでしょうか。 その商品入力フィールド(実際はselectなのですが)に、initial値として先の商品番号を入れておくようにしたいのですが。 クッキーの読み書きのscriptは一応本を読んで書いてみました。クッキーが書かれるのは確認しました。 読み込んで、定義したフィールドに移すところも書けると思います。ただ、そのscript内のフィールドを、html内で使用する方法がわかりません。

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

  • ベストアンサー
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.2

#1>この1行目に前頁から受け渡された商品番号を入れておいて、initial値としたい var setValue ="商品番号3";//前ページから受け取った文字列 window.onload=function(){//onload 時に実行 document.フォーム名.Syohin.options[0].value=setValue; document.フォーム名.Syohin.options[0].text=setValue; }; でいいと思います。 蛇足ですが、 DOMが使える比較的新しいバージョンで、 リストの中に既に選択したい項目があるなら(つまり項目をダブらせない) document.フォーム名.Syohin.value=setValue; でいいです。 古いバージョンで上記がうまくいかない場合は document.フォーム名.Syohin.oprints[n].value から合致するnを見つけて document.フォーム名.Syohin.selectedIndex=n;

kuma1960
質問者

お礼

onload時にそのフィールドにセットされるようにscriptを書く訳ですね。 ありがとうございました、やってみます。 テストするのは7日になりますので、またうまくいかなかったら質問するかもしれませんが、よろしくお願いします。

その他の回答 (1)

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.1

>実際はselectなのですが input type="text" ですか? それとも、 SELECT~OPTION によるフィールドということですか? その場合、OPTION は、スクリプトで作るのでしょうか、既にあるモノから選ぶような形になるのでしょうか?

kuma1960
質問者

補足

input type="text"ではなく、 <select name="Syohin"> <option value=""></option> <option value="商品番号1">商品番号1</option> <option value="商品番号2">商品番号2</option> <option value="商品番号3">商品番号3</option> <option value="商品番号4">商品番号4</option> </select> となっています。 この1行目に前頁から受け渡された商品番号を入れておいて、initial値としたいのですが。

関連するQ&A

  • ebookoffでコンビニ受渡しについて

    ebookoffで商品を購入しようと考えています。そこでコンビニ受渡しで代金を払いたいのですが、そのとき注文番号ををそのままレジの人に伝えればいいんですか?教えてください。m(__)m

  • クッキーを発行するドメイン名を指定する方法

    function getCookie(keyname){ var tmp = document.cookie + ";"; var index1 = tmp.indexOf(keyname, 0); if(index1 != -1){ tmp = tmp.substring(index1, tmp.length); var index2 = tmp.indexOf("=", 0) + 1; var index3 = tmp.indexOf(";", index2); return(unescape(tmp.substring(index2, index3))); } } function setCookie(keyname, val){ var tmp = keyname + "=" + escape(val) + ";"; var gmt = new Date(); gmt.setTime(gmt.getTime() + 9*60*60*1000 + 24*60*60*1000*365); tmp += "expires=" + gmt.toGMTString(); document.cookie = tmp; } function backFunc(){history.back();} function backEntry(){window.location = "rank2.cgi?mode=show&rank=$IN{'rank'}";} function backOperate(){document.form1.submit();} function startFunc(){ if("$FORM{'savecookie'}" != "save"){return;} if(getCookie("dakenId") != "$FORM{'para3'}"){setCookie("dakenId", "$FORM{'para3'}");} if(getCookie("dakenPass") != "$FORM{'para4'}"){setCookie("dakenPass", "$FORM{'para4'}");} } 現在は、http://ドメイン.com/cgi-bin/abc/ このような階層にクッキーが保存されています。 これを、http://ドメイン.com/cgi-bin/に保存するには、上記スクリプトをどのように変更すればよろしいのでしょうか。 発行したクッキーの参照可能なサイト (URL) として domain 値と path 値があるそうですが、自分なりにここ二日間勉強し続けましたが、クッキーについての知識はゼロに近いため、どうしても自力では解決できそうにありません。 どなたかご存知のかた、何卒宜しくお願いいたします。

  • JavascriptでsetCookie? 2時間の期限をつけたいのですが…

    クッキーを書き込む方法をWebや本で模索していたのですが、どうもわからなくなってしまいました。 「Javascriptでクッキーを書き込むには、docment.cookieという書き方をする」と色々な入門書やサイトに書いてあるのですが、有効期限を「○年○月」ではなく「今から2時間後」にする方法を検索してみると、「setCookie」という書き方でばかり出て来ます。 今から2時間後の期限で、「ENTERFROM」という名前のクッキーに「NEWSITE」という値を書き込んで記憶させたいのですが、次のソースを普通のHTML書類に書き足せばこの目的は実現するでしょうか? <SCRIPT LANGUAGE="JavaScript"> <!-- kigen = new Date(); kigen.setTime(d.getTime() + 2*60*60*1000); //2時間後 expire = kigen.toGMTString(); setCookie("ENTERFROM", NEWSITE, expire); //--> </SCRIPT> また、これでOKだとして、こうして書き込んだクッキーの内容をあとでフォームメールでからメール送信するには、フォーム内に <SCRIPT language="JavaScript"><!-- document.write("<INPUT type=\"hidden\" name=\"iriguchi\" value=getCookie(ENTERFROM)>"); // --></SCRIPT> とでも入れれば送信できるでしょうか? 間違っているところがありましたら、…多分いくつもあるような気がするのですが (^^; 、どう直したら正しくなるか教えて頂けないでしょうか? どうかよろしくお願い致します。

  • アクセスでの入力を簡単に行いたいです

    よろしくお願いします。 t商品番号というテーブルがあります。 フィールドは『注文番号』と『商品名』です。 今フォームを新たにつくり、テキストボックス『注文番号』と『商品名』を作りました。 注文番号を入れると商品番号が自動で入るように、テキストボックス商品名のコントロールソースに =DLookUp("商品名","t商品番号","注文番号=" & [注文番号]) と入れましたが、#Errorとでて、注文番号をいれても商品番号が自動で入力されません。 ご意見をよろしくお願いします。

  • サイト訪問者に対して1度だけ実行したい

    サイト訪問者に対してあるJavaScriptを1度だけ実行したいのですがよい方法はないでしょうか? 下記コードのようにクッキーを利用して初めての訪問者に対してメッセージを表示させるコードを利用して初めての訪問者に対してJavaScriptを実行させるようにはできないでしょうか? <script language="JavaScript"><!-- var key="freekeyword"; var n=getCookie(key); if(n=="") { alert("はじめまして!\nようこそ"); }else{ alert("\n"+n+"回目の訪問ありがとうございます"); } n++; setCookie(key,n); function getCookie(key) { var s,e; var c=document.cookie+";"; var b=c.indexOf(key,0); if(b!=-1) { c=c.substring(b,c.length); s=c.indexOf("=",0)+1 e=c.indexOf(";",s); return(unescape(c.substring(s,e))); } return(""); } function setCookie(key,n) { var myDate=new Date(); myDate.setTime(myDate.getTime()+6*30*24*60*60*1000); document.cookie=" "+key+"="+escape(n)+"; expires="+myDate.toGMTString(); } // --></script>

  • ファイルメーカー8 データ加工後、別テーブルのフィールドへ移行

    こんにちは!! スクリプトにより、 フィールドのデータを、別テーブルのフィールドへ、 加工してから移行する時、どのようにやっていますか? たとえば、 テーブル1、テーブル2とあります。 テーブル1にはIDフィールド、テーブル2にはお客様番号フィールド。 移行したいレコードを、チェックボックスにより選択させ、 スクリプトを実行したとき、 選択されたレコードに対し テーブル1のIDフィールドを元に、 "hoge"を文頭に追加してから、テーブル2のお客様番号フィールドに 入力。 1レコード終わったら、次のレコード。 試しに1つ作ってみました。 移行元フィールドのデータをコピーし、移行先フィールドに移動、 貼り付け。 まだ、複数レコードがあっても、1フィールドだけなので 大丈夫ですが、 こういう処理をしたいフィールドは30以上あります。 もっと良いスクリプトの書き方は、ないでしょうか? なぜこのような事がしたいかと言いますと、 多店舗あるネットショップの顧客情報などを管理したいと思ってます。 それぞれのネットショップでは、顧客情報や商品情報などを 独自のフィールドでCSVとして吐き出します。 各店舗用テーブルへCSVを取り込み、 それぞれのスクリプトにより、 加工しながら、一括管理テーブルへと移行させたいのです。 説明が下手で申し訳ありませんが、何卒よろしくお願いいたします。

  • eBOOKOFFで・・・

    ebookoffで商品を購入しようと考えています。そこでファミリーマートでコンビニ受渡しで代金を払いたいのですが、そのとき注文番号ををそのままレジの人に伝えればいいんですか?それともファミポート使うんですか?教えてください!

  • FileMakerで、ひとつの画面に複数の索引設定を行うには

    会社で、FileMaker Pro10で、商品のDBと、顧客のDBを作成、納品書を印刷できる画面作成を担当することになりました。 (カテゴリが違ったら、また、質問を調べましたが、もし重複していたら申し訳ありません) 納品書作成の画面で「商品番号を入力すると、商品DBを参照して、商品の詳細を表示する」とするために、 商品番号のフィールドを索引設定にし、商品の詳細を表示するフィールドを参照リレーショナルフィールドにする、 というのはできました。 しかし、一画面で商品を10個指示したいのですが、うまくできません。 1つ目の商品番号フィールドに商品番号を入力すると、10個全部の 商品詳細フィールドに、同じ商品詳細が表示されてしまいます。 どうすれば、10個の商品番号に対応した商品詳細を表示できるのでしょうか。 FileMakerは、今回本を買って初めて勉強しているところです。 8冊読みましたが、にわか仕込みなので、知識が不安定で大変申し訳 ないのですが、今日中に対応しなければならず、大変困っております。 何卒よろしくお願い申し上げます。

  • ファイルメーカーのフィールドの定義について

    ファイルメーカーでの開発を行っており以下の疑問が発生しました。 1つのファイルメーカー(1ファイル)で定義できるフィールドは はRDBでいうところのテーブルなのでしょうか? 例えば以下のファイルメーカーは 「商品.fp5」のフィールド「商品番号」「商品名」「仕入れ価格」 「売上.fp5」のフィールド「商品番号」「売上金額」「支払区分」 以下のDBに相当するのでしょうか? DB名:基幹DB テーブル名:商品 / カラム:「商品番号」「商品名」「仕入れ価格」 テーブル名:売上 / カラム 「商品番号」「売上金額」「支払区分」 何でこんなことを質問するかといいますと ファイルメーカーの1ファイルで商品テーブルと売上テーブルの値を定義したいけど 無理そうだと判断したからです。 実際のところはどうなのでしょうか?ご存知の方よろしくお願いいたします。

  • FileMaker Go 12 for iPho

    現在、iPod touch で、 FileMaker Go 12 を使用しております。 それで、FileMaker と Pic2Shop の連携アプリを使用しているのですが、 Pic2Shop でバーコードを読んだ後、そのまま取得したバーコードの商品の検索を行っているのですが、 その検索を行った後の画面の描画がおかしくなります。 (添付画像のようになります) なお、商品検索に使用しているスクリプトは、 商品コードを手打ちできるよう、商品コードのフィールドの OnObjectExit にも 設定しているのですが、手打ちで入力した場合、きちんと画面は表示されます。 一応、検索自体はきちんとされているので、 (検索結果をカスタムダイアログで出すと、きちんと表示されたので) Pic2Shop から値の取得はできているようなのですが、 画面の表示がおかしいのが、分かりません。 なお、スクリプトは、 Pic2Shop からスクリプト引数で入力したコードを取得して、データベースの商品コードフィールドに書き込み。 その後、商品検索スクリプトを呼び出しております。 商品検索スクリプトでは、 商品コードフィールドからコードを取得し、 マスタデータの入ったテーブルにレイアウトを変更し、コードで検索。 その検索結果が返ってきていれば、変数に格納。 その後、スキャン時の画面に戻り、 検索結果をその画面のフィールドに書き込むようにしています。 そのスキャン時の画面に戻る際に、添付画像のようになっていました。 ただ、カスタムダイアログで確認すると、データはきちんと格納されていました。 これが原因ではないか、 こうすればどうか、 などの方法をご存知の方、どうかご教授お願いいたします。

専門家に質問してみよう