0

ちょっとわからないところがあります。

6つのステップがあるページがあります。次のステップが非アクティブで、前のすべてのステップがアクティブなパンくずリストのようなナビゲーションを作成するにはどうすればよいですか?

すなわち。

ステップ 1 > ステップ 2 > ステップ 3 > ステップ 4 > ステップ 5 > ステップ 6

ステップ4のときはこんな感じ

ステップ 1 >ステップ 2 >ステップ 3 >ステップ 4 > ステップ 5 > ステップ 6

これらのアクティブなステップの URL には、そのステップ ページを指すパラメーターが含まれます。

つまり、ステップ 1 のページ パラメータは page=intro です。

誰かが助けてくれることを願っていますか?

- - - - 解決 - - - -

session_start();
$_SESSION['page'][] = $_GET["page"];

$steps = array(
    "selecthouse" => "Vælg hustype og tagform",
    "selectrooftile" => "Vælg tagsten",
    "angleinput" => "Tagvinkel",
    "rfinish" => "Tag-detaljer",
    "inputdims" => "Indsæt mål",
    "matliste" => "Materiale-liste",
    );

foreach($steps as $key => $value) {
    if(in_array($key, $_SESSION['page'])) {       
        echo '<a href="?page='.$key.'">'. $value .'</a></b> >';
    } else {
        echo $value ." > ";
    }
}
4

1 に答える 1

1

これを行うにはいくつかの方法がありますが、最善の方法はコードの残りの部分によって異なります。

このような線形ナビゲーションに対する私の個人的な好みは、ユーザーがアクセスしたページをセッション内の配列に保存することです。

<?php
  session_start();
  $_SESSION['pages'][] = $_SERVER['REQUEST_URI'];
?>

次に、「ブレッドクラム」の各項目の周りに if 配列を配置するだけです。たとえば、次のようなものです。

<?php
  if (in_array('/step1.php',$_SESSION['pages'])) {
    ?>
    <a href="/step1.php">Step 1</a>
    <?php
  } else {
    ?>
    Step 1
    <?php
  }
?>

編集

新しく投稿されたコードから、終了タグはあります</b>が、開始タグはありません。

ステップに戻るための設定解除については、次のようにするのが最善です。

<?php
  $stepskeys = array_keys($steps);
  $_SESSION['pages'] = array(
    0 => $stepskeys[1],
    1 => $stepskeys[2],
    2 => $stepskeys[3]
  );
?>

これにより、アレイがステップ 3 にリセットされます。

于 2012-08-01T09:46:06.807 に答える