アプリ版:「スタンプのみでお礼する」機能のリリースについて

JavaScript初心者です。
サブpage(診察予約のリンク先のhtml)で各フォーム(お問い合わせ・予約・ゲストブックなどを)を一つのhtmlにまとめたく、iframeもしくはinnerHTMLを使い、サブメニューでdisplay="none"切り替えなどで、各フォームを切り替えたいと作成し始めたものです。
 サーバーサイドのCGIはKentさんのフリーCGIのClipMailやAjaxを使用する予定でおります。

 ただ条件として、トップのコンテンツ内の「メール相談画像」ボタンからのリンク先はお問い合わせフォームで、通常の横メニューボタン(緑の)の診察予約ボタンからのリンク先は予約フォームがデフォルトとして表示されるようにしたいわけです。
【ご参照お願いします。】
http://miya-fc-2008.sakura.ne.jp/

たぶんjavascriptで条件式を用いてリンク先を振り分ければいいと思ったので、質問投稿させて頂きましたが、具体的にどういう条件式などで
書いていけばいいか分かりません。

アドバイス頂けると幸いです。
宜しくお願いします。

A 回答 (3件)

どこまでの初心者かわからないのですが


理解できなかったらごめんなさい・・・

1.まず、リンクを以下のように書き換えます。

<a href="form.html?mail">←メール用リンク
<a href="form.html?appoint">←予約用リンク

※「?」以降の文字列やファイル名は適当に変えちゃってください


2.form.html(仮)のスクリプト部に以下を追加(外部ファイルでも可)

//ここから
document.body.onload=function(){//読み込みが終われば判定開始

if(location.search=="?mail"){//ファイル名の後に「?mail」が付いていれば
document.getElementById('mail').style.display="block";//「mail」フォームを表示
}
else
if(location.search=="?appoint"){//「?appoint」ならば
document.getElementById('appoint').style.display="block";
}

else{//それ以外・指示なしのときは
document.getElementById('default').style.display="block";
}

}
//ここまで


3.HTMLのフォーム部は以下のようにします

<form id="mail" style="display:none;">メールフォーム</form>
<form id="appoint" style="display:none;">予約用フォーム</form>
<form id="default" style="display:none;">その他フォーム</form>



これでなんとなくいけるはずです・・・

この回答への補足

15mmさま>
丁寧にご回答頂き、本当にありがとうございました。

ご回答内容の「1.まず、リンクを以下のように書き換えます。」
<a href="form.html?mail">←メール用リンク・・・
とは、index.htmlのコンテンツの中の「メール相談画像」にリンク
をはるのと、<a href="form.html?appoint">←予約用リンクは
通常の横メニューボタン(緑の)の診察予約ボタンにはればいいとの意味ですよね?

一度、さっそく自分で試してみている途中ですが、またお時間が許される時でいいので、ご回答頂けると幸いです。

補足日時:2008/04/14 22:52
    • good
    • 0

だいぶ遅くなってしまいました。

すみません。

方法は2つほど考えて参りました。


1.<noscript><form></noscript>のようにもうひとつ標準表示のフォームを「display:none;」を削除して配置する。

JS非対応・無効ブラウザではフォームの切り替えもできないわけですから、
他2つのファームも別ファイルで作成・リンクするしか切り替えの方法はないようです


2.<noscript><style></noscript>で非対応・無効ブラウザでのみのスタイル指定。

この方法では、正常に動作はしても文法的に問題があるのでお勧めできません^^;
(<noscript>は<body>内、<style>は<head>内に配置するものですので・・・)
↓でも一応やり方を↓

<noscript><style type="text/css"><!--
#default{display:block !important;}
--></style></noscript>

配置する場所は・・・どこでもいいです。どうせ文法無視したやり方なので。
(外部ファイルにして<link>でもいいです)


文章書いていて改めて思ったのですが、やっぱり1のほうがいいですかね

この回答への補足

15mm様>
JS非対応・無効時の方法、教えて頂きありがとうございました。
やはり#1の方法が正規で安全そうなので、さっそく試してみますね!

根気よく丁寧に教えて頂き、本当に分かりやすく感謝しております。
重ねてありがとうございました。

補足日時:2008/04/24 23:25
    • good
    • 0

>#1の回答への補足


遅くなってすみません。
補足の内容のとおりでOKです。
私の勝手な解釈と実際にやりたいことが少しでも違えばまたご注文ください。


ちなみに#1の内容にはJavaScript無効・非対応ブラウザへの配慮は全く入れなかったのですが、
対処法は別に用意してあるのでしょうか?

もし無いのであれば、#1に少し付け足さないと
フォームが何も表示されないという苦情が出かねません

そちらのほうも必要ならば言ってください。

この回答への補足

15mm様>
ご回答頂き、本当にありがとうございます。

私は今まで、Jsの無効・非対応ブラウザへの配慮はまったく視野に
入れてなかったのですが、やはりフォームはに非表示になってしまうとさすがに痛いので、是非この機会に#1に関してで教えて頂けると、
幸いです。

またお時間が許される時に、宜しくお願いします。

補足日時:2008/04/22 07:42
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!