質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

レスポンシブWebデザイン

レスポンシブWebデザイン(RWD)は、スクリーンのサイズ、プラットフォーム、オリエンテーションに基づいて様々なデバイスで最適のサイトを生成するのウェブデザインとその開発のアプローチ方法を呼びます。

Q&A

解決済

1回答

478閲覧

1つのPHPファイルに全く同じコードを複数書いたが、初めのコードのみしか処理されない。2つ目以降は全て処理されない。

6EVILSTAR9

総合スコア11

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

レスポンシブWebデザイン

レスポンシブWebデザイン(RWD)は、スクリーンのサイズ、プラットフォーム、オリエンテーションに基づいて様々なデバイスで最適のサイトを生成するのウェブデザインとその開発のアプローチ方法を呼びます。

0グッド

1クリップ

投稿2020/06/14 16:10

PC用とスマホ用にコードを書きました。
先にコードを書いてあるPCでは処理されますが、後ろにコードを書いたスマホでは処理されません。
先に書いてあるPC用のコードを消すと、スマホでも表示されます。
PC用とスマホ用の記述の順番を入れ替えると、スマホでは処理され、PCでは処理されません。

<nav class="pc"> <ul> <?php if ( osc_count_categories() >= 0 ) { ?> <?php while ( osc_has_categories() ) { ?> <li class="<?php echo osc_category_slug() ; ?> dropdown-submenu"> <a class="category" href="<?php echo osc_search_category_url() ; ?>"> <?php echo osc_category_name() ; ?> <span>(<?php echo osc_category_total_items() ; ?>)</span> </a> </li> <?php } ?> <?php } ?> </ul> </nav> <nav class="sp"> <ul> <?php if ( osc_count_categories() >= 0 ) { ?> <?php while ( osc_has_categories() ) { ?> <li class="<?php echo osc_category_slug() ; ?> dropdown-submenu"> <a class="category" href="<?php echo osc_search_category_url() ; ?>"> <?php echo osc_category_name() ; ?> <span>(<?php echo osc_category_total_items() ; ?>)</span> </a> </li> <?php } ?> <?php } ?> </ul> </nav>

どのようにすれば1つのPHPファイル内で、別の箇所に書いた処理を動作させることができますか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

何のフレームワークかわかりませんが、while ( osc_has_categories() )が1度ループを抜けているということは2回目のループはまわりません。

ループをリセットするような構文があるならそれを使い、ないならループ内容を配列に持って使いまわすなど別の方法を考える必要があります。

投稿2020/06/14 16:16

kei344

総合スコア69458

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

6EVILSTAR9

2020/06/14 18:25 編集

ご回答ありがとうございます。調べてます。 下記のセレクトボックスを使った書き方では、複数の箇所に設置しても全て表示されることが分かりました。何故でしょうか? <div class="sp"> <?php osc_goto_first_category(); ?> <?php if ( osc_count_categories() ) { ?> <select id="sCategory" name="sCategory"> <?php while ( osc_has_categories() ) { ?> <option class="maincat" value="<?php echo osc_category_id() ; ?>"><?php echo osc_category_name(); ?></option> <?php } ?> </select> <?php } ?> <?php } ?> </div>
kei344

2020/06/14 18:26

<?php osc_goto_first_category(); ?>が「ループをリセットするような構文」なんじゃないですか?
6EVILSTAR9

2020/06/14 18:41

その通りでした。 /** * Reset the pointer of the array to the first category * * @return void */ function osc_goto_first_category() { View::newInstance()->_reset('categories'); } <?php osc_goto_first_category(); ?>をスマホ用コードの前に挿入して処理されるようになりました。 こんなことに気付かずに質問してしまいすみません。ご回答ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問