![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e6f04cf)
![](http://oshiete.xgoo.jp/images/v2/common/profile/M/noimageicon_setting_05.png?e6f04cf)
お世話になります、JavaScript初心者です。
GET送信によるパラメータを他ページに受け渡して表示をさせると
各ブラウザで以下のような現象が起こります。
□Windows
・IE8:正常に表示
・IE7:正常に表示するがエラーが表示される
(エラー内容:「'document.form1.courseno.value'はNullまたはオブジェクトではありません。」)
・IE6:表示されずにエラーが表示される
・FF/chrome:文字化け
□Macintosh
・safari/FF:文字化け
様々なサイトのソースを参考に自分なりに書いたのですが、
初心者なものでどこが原因なのか見当もつきません。
以下に該当するソースを明記いたしますので、ご教授いただければ助かります。
/* ↓↓↓パラメータを渡すページ↓↓↓ */
<script type="text/javascript">
function send() {
var courseno=course=day=price="";
/* コード変換 */
courseno=escape(document.form1.courseno.value);
course=escape(document.form1.course.value);
day=escape(document.form1.day.value);
price=escape(document.form1.price.value);
}
</script>
<body>
<form action="#" method="get" name="form1">
<p><a href="get.html?courseno=4074&course=水晶岳岳&day=12月25日&price=93,000円" onclick="send();">お申込み</a></p>
</form>
</body>
/* ↑↑↑パラメータを渡すページ↑↑↑ */
/* ↓↓↓パラメータを表示させるページ↓↓↓ */
<script type="text/javascript">
function pramWrite() {
var pram=location.search;
/* パラメータがない時は処理しない */
if (!pram) return false;
/* 先頭の「?」を削除して「&」で分割し配列へ */
pram=pram.substring(1);
var pair=pram.split("&");
var i=temp="";
var key=new Array();
for (i=0; i < pair.length; i++) {
/* 配列の値を「=」で分割 */
temp=pair[i].split("=");
keyName=temp[0];
keyValue=temp[1];
/* キーと値の連想配列を生成 */
key[keyName]=keyValue;
}
var courseno=course=day=price="";
courseno=unescape(key["courseno"]);
course=unescape(key["course"]);
day=unescape(key["day"]);
price=unescape(key["price"]);
document.form1.pram.value="コースNO:"+courseno+"\n"+"コース名:"+course+"\n"+"出発日:"+day+"\n"+"旅行代金:"+price+"\n";
}
</script>
<body onload="pramWrite()">
<p>受け取ったパラメータを表示</p>
<form name="form1" action="#">
<textarea name="pram" cols="40" rows="4" readonly="readonly" wrap="off" style="border:0;overflow:visible"></textarea>
</form>
</body>
/* ↑↑↑パラメータを表示させるページ↑↑↑ */
以上、よろしくお願いいたします。
No.1ベストアンサー
- 回答日時:
ごめん!もうねむくて、かいとうではないのだけれど
var courseno=course=day=price="";
って、coursenoいがいは、ぐろーばるだよ!
unescape()は廃止への・・・・
なので
encodeURIComponent()とか decodeURIComponent()
に。
https://developer.mozilla.org/ja/Core_JavaScript …
<form>のnameはidに。
document.form1.pram.valueを
document.forms['form1'].elements['pram'].valueとかに
この回答への補足
回答どうもありがとうございます。
指摘いただいた各グローバル変数を「var course="";」という風にそれぞれローカル変数にいたしました。
各コード変換の箇所も
「var courseno=encodeURIComponent(courseno);」
「courseno=decodeURIComponent(key["courseno"]);」
とそれぞれ変更したところ、無事に表示されました!!!
ただIE6だけはエラーが表示されるのですが、
これは複数のIEを共存させる「Multiple_IE」のせいなのでしょうか?
それとも今回のJavaScriptに問題があるのでしょうか?
もし原因などが分かるようでしたら指摘してもらえると助かります。
No.2
- 回答日時:
> <a href="get.html?courseno=4074&course=水晶岳岳&day=12月25日&price=93,000円"
JavaScriptとか関係有りません。
URLエンコードをブラウザに任せる場合は、「(UTF-8やShift_JISなどの)文字コード不明データ」として、文字コードの変換を行って下さい。
<a href="get.html?%48">などとあらかじめ%nn形式のURLエンコードをしておけば、
そのまま送信されますので文字コードの判別が不要になります。
回答どうもありがとうございます。
そうですね、あらかじめURLエンコードしておけば良いのですが、
リンク設定をする人たちのスキルの問題があり、
分かりやすくするため日本語でパラメータをと考えております。
他にもっと良い方法があるのかもしれませんが、
なにぶんJavaScript初心者なもので、この方法しか思いつきませんでした。
また機会があればアドバイス宜しくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript 1日1回引けるJavaScriptおみくじについて 1 2022/12/12 22:28
- PHP PHPで画像の渡しが上手く行きません。 1 2023/02/02 09:39
- JavaScript javascript作成してます。ラジオボタンで判定するコードを書いてます。 1 2023/07/18 11:03
- JavaScript ①入力フォーム→②確認表示画面→③送信完了画面のコードを書いているのです、 入力フォームから受け取っ 2 2022/05/10 16:45
- JavaScript セレクトボックスで配列を呼び出したい。 1 2022/07/08 20:14
- JavaScript フォームが空欄の時にフォームの外をクリックすると、エラーが出るコードを調べています。 1 2023/06/25 11:51
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
- JavaScript javascriptのちょっとした動作不良(原因は突き止めたのですが) 1 2023/06/15 19:58
- HTML・CSS ボタンをクリックした時に、入力フォームのすぐ下部に、「入力欄が空白です」というテキストメッセージが表 1 2022/04/27 16:25
- JavaScript 以前の質問だと、どの条件でも配列が表示されてしまいます。 1 2022/07/09 11:40
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
onchangeイベントを強制的に発...
-
formのfileの値をhiddenでも持...
-
クリックさせたいが、click()が...
-
IEで,テキストエリアの選択範...
-
開いた子ウィンドウにあるボタ...
-
テキストの背景色を変える。
-
jQueryで設定したイベントハン...
-
SubとEnd Subについて
-
Javascriptで'(シングルクォー...
-
VB.NETで<Input>タグ、<text...
-
onclickが動作しない
-
addEventListenerについて
-
ボタンかリンクをクリックする...
-
JSのボタンを複数う使うには
-
if構文
-
javaScriptの変数をJavaの変数...
-
【誕生日占い】計算結果ごとに...
-
プルダウン 項目が多いので先頭...
-
プルダウンで選択すると、DBの...
-
return trueとreturn falseの用...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
onchangeイベントを強制的に発...
-
クリックさせたいが、click()が...
-
onclickが動作しない
-
追加ボタンを押した際に ok ボ...
-
javaScriptの変数をJavaの変数...
-
innerHTML内では改行は禁止?
-
formのfileの値をhiddenでも持...
-
ボタンかリンクをクリックする...
-
JavaScriptのfileオブジェクト...
-
onClickがinput type="image"だ...
-
javascriptで作成されたテーブ...
-
開いた子ウィンドウにあるボタ...
-
コードレビューをお願いします。
-
ボタンをクリックするとテキス...
-
ポップアップブロックにならな...
-
VB.NETで<Input>タグ、<text...
-
ボタンをクリックして文字を置...
-
テキストフィールド未入力の場...
-
URL 判定
-
javascriptでtextareaに文字列...
おすすめ情報