ホームページ >バックエンド開発 >PHPの問題 >PHPのカスタムメニューの変更

PHPのカスタムメニューの変更

PHPz
PHPzオリジナル
2023-05-07 13:40:07641ブラウズ

PHP カスタム メニューの変更

カスタム メニューは、ユーザーに高速で直感的なナビゲーション エクスペリエンスを提供するため、最新の Web サイトでは不可欠です。開発プロセスでは、さまざまなニーズに応じて既存のメニュー機能を変更する必要が生じることがよくあります。この記事では、開発者がメニューを簡単に変更できるように、PHP カスタム メニューを変更する方法を紹介します。

1. 準備作業

まず、変更するために既存のメニュー コードが必要です。ここでは、例として基本的な PHP メニュー コードを使用します。このサンプル メニューには、さまざまなカテゴリとその下のサブカテゴリが表示されます。

<ul>
    <?php
        $categories = array(
            'Category 1' => array(
                'Subcategory 1',
                'Subcategory 2',
                'Subcategory 3'
            ),
            'Category 2' => array(
                'Subcategory 4',
                'Subcategory 5'
            )
        );

        foreach ($categories as $category => $subcategories) {
            echo '<li>' . $category . '<ul>';
            foreach ($subcategories as $subcategory) {
                echo '<li>' . $subcategory . '</li>';
            }
            echo '</ul></li>';
        }
    ?>
</ul>

このコードは、次のような基本的な垂直メニューを生成します:

カテゴリ 1

  • サブカテゴリ 1
  • サブカテゴリ 2
  • サブカテゴリ 3

カテゴリ 2

  • サブカテゴリ 4
  • サブカテゴリ 5

2. メニュー変更コードの追加

次に、メニューをバックグラウンドで変更できるようにするコードを追加しましょう。まず、メニュー コードの先頭に次のコードを追加します。

<?php
    // 声明一个变量,用于存储菜单选项
    $menu_items = array(
        'Category 1' => array(
            'Subcategory 1',
            'Subcategory 2',
            'Subcategory 3'
        ),
        'Category 2' => array(
            'Subcategory 4',
            'Subcategory 5'
        )
    );

    // 如果有提交表单
    if($_SERVER["REQUEST_METHOD"] == "POST"){
        // 取出 identifier 值
        $identifier = $_POST['identifier'];
        
        // 取出选项值
        $selected_items = $_POST['selected_items'];
        
        // 更新菜单选项
        $menu_items[$identifier] = $selected_items;
    }
?>

このコードは、現在のメニュー オプションをすべて含む配列 $menu_items を作成します。次に、フォームが送信されると、POST データが検出され、変更が必要なメニュー識別子と選択されたオプションが抽出され、それらが $menu_items に更新されます。

次に、メニューを変更できるように、フォーム コントロールをメニュー コードに追加する必要があります。各メニュー項目の下に次のコードを追加します。

<li>
    <?php
        // 输出当前选项
        echo $category;
    ?>
    <form method="POST">
        <input type="hidden" name="identifier" value="<?php echo $category; ?>" />
        <select name="selected_items[]" multiple>
            <?php
                foreach($subcategories as $subcategory) {
                    $selected = (in_array($subcategory, $menu_items[$category])) ? 'selected' : '';
                    echo '<option ' . $selected . ' value="' . $subcategory . '">' . $subcategory . '</option>';
                }
            ?>
        </select>
        <button type="submit">Save</button>
    </form>
</li>

このコードは、各メニュー項目の下に選択リストと送信ボタンを追加します。選択リストには、このカテゴリの下にあるすべてのサブカテゴリがリストされ、ユーザーはメニュー項目に追加するサブカテゴリを選択できます。ユーザーが送信ボタンをクリックすると、フォームが送信され、上記のコード内の PHP コードが実行されてメニュー項目が更新されます。

3. 変更されたメニュー操作の処理

ユーザーがフォームを送信してメニュー項目を変更するとき、どのような操作を実行する必要があるでしょうか?たとえば、メニュー項目をデータベースに保存したり、設定ファイルに出力したり、メニュー コードで直接再更新したりできます。

ここでは、変更したメニューを Web サイトに直接出力すると仮定します。変更したメニューを PHP コードで直接出力できます。これを行うには、メニュー コードの最後に次のコードを追加します。

<ul>
    <?php
        foreach ($menu_items as $category => $subcategories) {
            echo '<li>' . $category . '<ul>';
            foreach ($subcategories as $subcategory) {
                echo '<li>' . $subcategory . '</li>';
            }
            echo '</ul></li>';
        }
    ?>
</ul>

これにより、変更されたメニューがループされ、Web サイトに表示されます。

4. まとめ

この記事では、コードを追加して PHP カスタム メニューを変更する方法を紹介しました。フォームを使用してメニュー項目の追加と変更を処理する方法を示し、変更されたオプションをメニュー コードに出力する方法を示しました。この記事がお役に立てば幸いです。

以上がPHPのカスタムメニューの変更の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。