- ベストアンサー
JavaScriptの条件文の応用
JavaScriptの条件文の応用について、アドバイスをお願いします。 if文は、ある条件を満たす時だけ命令を実行します。 if~else文は、ある条件を満たす時だけ命令を実行し、それ以外の場合はelse以下の命令を実行します。 if~else if~else文は、if~else文のある条件を複数用意したものです。 switch文は、if~else文を更に複数用意したものです。 それでは、ある条件"だけ"を満たす時だけ命令を実行させたい場合、どのように条件文を書けばいいのでしょうか。 具体的には、スレッド型掲示板で、「返信なし親記事だけ:空白」の時だけ投稿日時を表示するようにさせ、「返信あり親記事:oya」の時には投稿日時を表示させないようにしたいのです。 そして、返信がある場合には、投稿日時の欄に「最後のレス:end」を表示させるようにしたいのです。 掲示板は、http://bbs.sekkaku.net/bbs/23.htmlです。 20時間ぐらいあれこれやっているのですが、妙案が浮かびません。例えば、以下のような書き方もしています。 この書き方の場合、投稿日時は返信ありの場合も親記事の投稿日時が表示され、返信の投稿日時は、別の欄(返信数)に表示されてしまいます。 しかし、少し書き方を変えると、親記事の投稿日時が一切表示されず、返信の投稿日時は、別の欄(返信数)に表示されたままです。 【BASE】の関連部分 <SCRIPT type="text/javascript"> <!-- var mode = "$mode"; if (mode != " "){ document.write('$date_year/$date_mon/$date_day($date_week2) $date_hour:$date_min'); } // --> </SCRIPT> 【RES】の関連部分 <SCRIPT type="text/javascript"> <!-- mode = "$mode"; if (mode != "end"){ document.write('$date_year/$date_mon/$date_day($date_week2) $date_hour:$date_min'); } // --> </SCRIPT>
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
こんにちわ 度々失礼します(o^-^o) 「返信記事の無い親記事のみの場合にのみ表示するようにする」場合の条件文 がわからないということですが 「それが親記事かどうか?」 「返信があるかどうか?」 のチェックはOKなのでしょうか? これらがOKならあとはif文で if( 親記事である && 返信無し ){ <・・処理・・>(日時の欄=投稿日時?) } こんな感じでいいような気がするのですが・・。 出来ませんか?(汗) またまた見当違いでしたらすみません(>_<)
その他の回答 (2)
- Y_eRu
- ベストアンサー率32% (33/101)
こんにちわ(o^-^o) 私も 「返信なし親記事だけ:空白」 とかの部分がよくわからないのですが 日時の欄に、条件によって 「投稿日時」or「レス」 の表示を変えたいということですよね? つまり if(「返信なし親記事だけ:空白」の場合){ 日時の欄=投稿日時; }else if(「返信あり親記事:oya」の場合){ 日時の欄=「最後のレス:end」; } ってことでは・・? そんな簡単なことじゃないって?(汗) 失礼しましたC= C= \(;・_・)/
お礼
依然として解決できないままなのですが、これ以上は新たな回答が付きそうにありません。 遅くなりましたが、回答を締め切らせて頂きます。
補足
さっそくの回答、ありがとうございます。 最初に回答頂いた方への補足の続きです。 サポートからの返事のうち、2番目にやることのやり方が分からないわけです。 「返信記事の無い親記事のみの場合にのみ表示するようにする」場合、条件文でどのように書けばいいのかが思いつきません。 if~else文を使うと、最初のifの段階で命令が実行されてしまいます。 複数の条件を付けるやり方では、うまくいかないようでした。 レンタル掲示板を無料で借りている場合、カスタマイズは1ヵ月30回までという利用制限があり、何度も試せないのがつらいところです。 私のJavaScriptに対する理解不足によりみなさんにご迷惑をおかけしまして、申し訳ありません。 なお、プログラム自体は、私のひとつ前の質問にあります。 http://oshiete1.goo.ne.jp/kotaeru.php3?q=702504
- the845t
- ベストアンサー率33% (246/743)
要約がつかめません。 もう少し簡単な例をあげると分かりやすいと思いますが・・・。 例えば、 if(){ if(){ } } のように、if文の中にif文とか、 if(hoge&&foo){ } のように、複数の条件をつけるやり方で、いかがですか?
お礼
結局は解決できずじまいなのですが、このまま放置しておいても新たな回答が付きそうにありません。 遅くなりましたが、回答を締め切らせて頂きます。 アドバイス、ありがとうございました。 またの機会がございましたら、よろしくお願い致します。
補足
さっそくの回答、ありがとうございます。 レンタル掲示板は、以下のような構造になっています。 BASE1(一覧表示の親記事) RES1(一覧表示のレス記事:レス無しの場合は空白OK) BASE3(一覧表示の親記事) [以下2つは、レス書き込みフォームなど2階層目の表示] BASE2(関連記事のみ表示の親記事) RES2(関連記事のみ表示のレス記事) ログ表示開始前のHTML ログ表示開始後のHTML そして、記事の種類の変数は、返信なし親記事:空白、返信あり親記事:oya、レス記事:res、最後のレス:end、となっています。 掲示板のサポートに問い合わせたところ、以下のような返事を頂きました。 「BASE1内に日付の表示する変数が御座いますが、これを同様にRES1にも設置します。 BASE1に設置する日付表示については、JAVAスクリプトを使用し、返信記事の無い親記事のみの場合にのみ表示するようにカスタマイズします。 RES1に設置する日付表示については、JAVAスクリプトを使用し、返信記事の最終記事のみに表示と言うようにカスタマイズします」。 長くなりますので、次に回答頂いた方への補足に移ります。
お礼
2度に及ぶ回答を頂き、ありがとうございました。 やはり、JavaScriptの知識だけでなく、実際にここの掲示板を使っていないと解決は難しいようです。 またの機会がございましたら、その際にはよろしくお願い致します。
補足
度々の回答、ありがとうございます。 既に30時間ぐらい、あれこれとやっていますが、うまくいきません。 「それが親記事かどうか?」、「返信があるかどうか?」 のチェックは、以下の変数で行います。 記事の種類の変数($res)は、返信なし親記事:空白、返信あり親記事:oya、レス記事:res、最後のレス:end、となっています。 実際にここの掲示板のサンプル23を借りて、カスタマイズを試みないと、回答するのは難しいのかもしれません。 問題が解決するか否かに関わらず、しばらくしたらポイントの発行と締め切りを行います。もう少しお待ちください。