いつも、お世話になっています。
JavaScriptで、分からないことが出ましたのでどなたかよろしくお願いします。
それは、フレーム間でのデータのやり取りでしたら教えていただいたのでが、それとは別に、例えば、親元のページにデータを入力した状態で、リンクをつないで新しく画面が移り変わったときに元のデータ(初めの画面に入力されているデータ)をそのまま新しくリンクされたページに引き継がせれることってできるのでしょうか?
リンクをはることですので、新しくブラウザは開かれない(1つのまま)ということでよろしくお願いします。
No.5ベストアンサー
- 回答日時:
おつかれさまです
JavaScriptをつかってデータの受け渡しを行うためにはCookieを使用するほうほうがあります。
具体的には
----送信側htmlに書くJavaScript---
<script language="javascript">
//テキストフィールドの値を取得する
function getValue(){
//値を取得する
var va1 = MyForm.textField1.value
var va2 = MyForm.textField2.value
var va3 = MyForm.textField3.value
//クッキーに書き込む
setCookie("value1", va1);
setCookie("value2", va2);
setCookie("value3", va3);
window.location.href ="../next/nextPage.htm"
}
//Cookieに書き込む
function setCookie(key, val) {
var tmp = key + "=" + escape(val) + "; ";
tmp += "expires=Fri, 31-Dec-2030 23:59:59; path=/;";
document.cookie = tmp;
}
</script>
----受信側html(bodyタグでOnLorad()を呼びましょう)--
function OnLorad(){
MyForm2.textField1.value = getCookie("value1");
MyForm2.textField2.value = getCookie("value2");
MyForm2.textField3.value = getCookie("value3");
}
function getCookie(key) {
var tmp1 = " " + document.cookie + ";";
var xx1 = xx2 = 0;
var len = tmp1.length;
while (xx1 < len) {
xx2 = tmp1.indexOf(";", xx1);
tmp2 = tmp1.substring(xx1 + 1, xx2);
xx3 = tmp2.indexOf("=");
if (tmp2.substring(0, xx3) == key) {
return(unescape(tmp2.substring(xx3 + 1, xx2 - xx1 - 1)));
}
xx1 = xx2 + 1;
}
return("");
}
はなはだ簡単ではございますがこれで拾えると思われます
この回答への補足
早速のご回答ありがとうございます。
いただいたソースを参考に組んではいるのですがエラーで「文が正しくありません」「オブジェクトを指定してください」というのが出てしまいます。
おそらく、リンク先のページがフレームでできているため、きちんと指定されていないのと、リンクが5つあるためだと思います。
そこで、一つお聞きしたいのですが、「window.location.href="../next/nextPage.htm"」
では、フレームの指定方法って言うのは必要なのでしょうか?もしそうでしたらどのようにすればいいのでしょうか?
5つリンクがあるのですが、下につなげて書くだけでよろしいのでしょうか?
なにぶん、JavaScriptに携わって2ヶ月で、いまだよく分かりません。
なにとぞ、よろしくお願いいたします。
No.6
- 回答日時:
おつかれさまです、
window.location.href ="../next/nextPage.htm"
は画面を私が勝手に作ったnextPage.htmに移動するということなので気にせず決り文句ではありません。
すみませんわかりにくくて…
Cookieに書き込むということはそのLocalディレクトリ(Cookieフォルダ)にファイルを作成してそこにセットしたCookieの情報を保存することを意味します。
受け取り側は何も意識せずにgetCookieしてやればよいわけです。
では。
No.4
- 回答日時:
こんにちは。
すみません。「CF」がなんであるかは知りませんが、サーバーにプログラムをアップできる環境でしょうか。
CGI(またはPHPでもASPでもいいです)を使用できれば、ページ間の値の受け渡しは楽なのですが。
この回答への補足
CFとは、COLDFusionといいまして、サーバー側で処理をするものです。
今の環境ですとCGIを使う環境ではないので、どうにかJavaScriptで、できないものかと思っております。何故か締め切ってしまっていますが、下の質問でなにかいい方法がございましたらよろしくお願いします。
No.3
- 回答日時:
失礼ながら便乗?です。
申し訳ありません。>obahiro様HIROYO様>
>2.フォームのhiddenフィールドに持ち回った値を格納し、リンクのonClickで該当フォームをSubmitする。
リンク先が静的なHTMLページの場合もJavaScriptか何かでPOSTデータを受け取る
ことが可能なのでしょうか?よろしければ補足をお願いします。
■GETの字数制限
> (全部で半角256文字だったかな?)
ほんとに、何文字だったでしょう?たしか、OS依存だったとは思うのですが、Windows
でのGET文字列の制限をご存じの方、教えていただけませんか。
No.2
- 回答日時:
私が思いつく限りでは、URLに引数を持たせるのが簡単かな、と思います。
FORMデータのGETでの受け渡しと同様に、
http://www.xxx.jp/linkto.html?name1=data1&name2= …
とかいう感じでリンクすれば、リンク先のページ内でJavaScriptの
location.search で ?以降が拾えるはずです。
ただし、日本語などの2バイト文字を含める場合は、送る前にescape関数などで
HTMLエンコードしてあげて、受け取ってからunescape関数でデコードしてあげる
必要があるかと思います。(が、ブラウザによってescape、unescapeはバグや
仕様の食い違いが・・・・。なので、この場合もしかしたらダミーで「見た目
単独ページに見えるフレームページ」を作ってフレーム間でデータやりとりした方が)
楽かも・・・・。
何か、ほかに良い方法がありましたら私も興味がありますのでお願いします。
No.1
- 回答日時:
方法としては2種類。
1.getデータとして引き渡す。
リンクのURLを、***.html?name1=value&name2=value2といったようにくっつけて渡します。
ただし、字数制限があります。
(全部で半角256文字だったかな?)
2.フォームのhiddenフィールドに持ち回った値を格納し、リンクのonClickで該当フォームをSubmitする。
POSTデータになるので、1.と違い字数制限はありません。
フレームを使っている場合は、ターゲット指定(どこのフレームにデータを渡すか)の指定を、キチンと管理してあげる必要があります。
# CFを使ってるんでしたっけ?
# そちらを使って良いのであれば、Session変数とか、ク
# ライアント変数を使うって言う手もありますよ。
この回答への補足
HIROYOさんのご回答を参考とさせていただこうと思いましたが、今の状況ですと難しいです。
それは、まずリンクのはり方にあるのですが、5つ帳票があり、そのうちの一つをラジオボタンで選びボタンを押すことによってリンクをはるようにしています。しかも、リンク先も全てフレームページになっており、困っています。
もしよろしければ、CFのセッション変数・クライアント変数について少し教えていただきたいのですが・・・リファレンスを見ても載っていなく途方にくれてしまっています。よろしくお願いいたします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(Microsoft Office) OneNote2016で過去のデータを読もうとすると「このページが開けませんでした」となってしまう。 2 2022/10/30 12:58
- Android(アンドロイド) Androidスマホのデータ移行が終わらない 1 2023/08/04 17:25
- その他(プログラミング・Web制作) Accessの代わりのノンプログラムデータベース作成 4 2022/10/21 09:26
- PHP PHPで入力フォームでデータを確認表示画面まで送る流れを日本語で理解したいのです。 1 2023/05/29 19:12
- Mac OS Macで今あるファイルの連番(ページ番号)に足し算をしてリネームしたい 1 2022/10/12 17:22
- 日用品・生活雑貨 A3の200ページくらいある図面をすぐ見やすく 4 2022/05/16 14:47
- iPhone(アイフォーン) iPhoneの機種変更するときのデータの引き継ぎについて 3 2022/07/06 18:29
- Excel(エクセル) 更新前と更新後の差分をVBAを使って抜き出したい 5 2023/06/01 14:35
- Excel(エクセル) Excelの複数人での参照について 2 2022/06/01 13:38
- JavaScript javaScriptで画面に値を入れるには 1 2022/08/14 12:27
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
フォームの値が0だったら空白...
-
PDFフォームで条件つき金額を表...
-
Acrobat Java Scriptについて教...
-
Javascriptが機能せず原因が分...
-
vbsでフォームに値を入力できない
-
return trueとreturn falseの用...
-
プルダウン 項目が多いので先頭...
-
javascriptでhiddenに二次元配...
-
formのfileの値をhiddenでも持...
-
javascriptでクイズ
-
【UWSC】HTML内のある部分を抽...
-
javascriptでセレクトボックス...
-
特定<table>内の<td>の色を変える
-
追加ボタンを押した際に ok ボ...
-
innerHTML内では改行は禁止?
-
submitした値を返したい
-
ファイル選択ダイアログが表示...
-
JavaScriptde途中で、「exit」...
-
1つのform内に2つのsubmitボタ...
-
value内に変数を入れたい
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
onClickとsubmitの処理順序
-
JSPとJavaScriptの連携について...
-
ラジオボタンによるフォームの...
-
テキストボックス入力を半角英...
-
onChange()メソッド
-
フォームから入力すると、入力...
-
テキストボックスを無効にする...
-
フォームの値が0だったら空白...
-
文末の改行コードを削除したい
-
キーボードの数字のキーだけを...
-
テキストボックスのグレーアウト
-
javaでフォーム入力の確認と文...
-
フィールドを有効(enabled?)に...
-
JavaScript のプログラム質問で...
-
Javascript 郵便番号の入力欄で...
-
イベント発生時に入力待ち状態...
-
フォームのテキストをリンク化...
-
貼り付けイベントで値を取得したい
-
メールフォームの入力確認用Jav...
-
dijit.form.ComboBoxについて
おすすめ情報