0

私はサイトにFAQページを作成しようとしています。すべての質問は、目次のようにまとめられています(たとえば、ウィキペディアのように)。質問をクリックすると、ページを下に移動して、回答とともに質問(上から繰り返します)に移動します。

質問はページに2回表示されるため、これを明白な方法で行うと、質問がコードに2回表示され、質問を変更する必要があり、更新する人が1か所でコードを変更するだけの場合に問題が発生する可能性があります。 。

また、各質問/回答のペアの前に意味のない名前のアンカータグを付けるのは、一種の非論理的なようです。数字が使用されている場合、質問が追加または削除されたときにこれも問題になる可能性があります。

基本的に、質問と回答を配列(PHPまたはjavascriptを使用しますか?)または配列のペアに格納し、配列の各要素に対して、生成されたアンカータグを含むリストアイテムを配置する方法があることを望んでいると思います。質問とその答え。これは実行可能ですか、それとも私はここでWeb開発に間違ったアプローチを取っているだけですか?

関連する副次的な質問:箇条書きを「Q:」に置き換えるために順序付けされていないリストのスタイルを設定する方法はありますか?

4

2 に答える 2

0

目次を作成する最も簡単な方法は、間違いなくアンカーを使用することです。更新、作成、および利用が簡単です。ウィキペディアなどのサイトを見ると、それらはコンテンツのアンカーテーブルメソッドも使用しています。クライアントがWebページを編集している可能性はありますか?そうでなければ、それは大きな面倒ではないはずです。

副次的な質問ですが、CSSを使用してリスト内の箇条書きを編集し、画像に置き換えることができることを私は知っています。次のようになります。

ul {
 list-style-position: outside;
 list-style-image: url("image.gif")
 list-style-type: square;
}

詳細については、http ://www.mediacollege.com/internet/css/ul-list.htmlを参照してください。

于 2011-09-09T23:49:32.330 に答える
0
<?php
    $questions = array(
        "Question 1",
        "Question 2",
        "Question 3",
        "Question 4"
    );

    echo '<p>';     // FAQ Menu

    foreach ($questions as $key => $question) {
        echo '<a href="#', $key, '">', $question, '</a><br />';
    }

    echo '</p>';

    // Begin FAQ

    foreach ($questions as $key => $question) {
        echo '<h2><a name="', $key, '">', $question, '</a></h2>';
    }

?>

HTMLを変更して、必要なフォーマットを取得できます。配列キーがアンカー名になるため、質問を変更する場合は、配列内で1回変更するだけです。

質問と回答を分けたい場合は、次を使用できます。

<?php
    $questions = array(
        array("Question 1", "Answer 1"),
        array("Question 2", "Answer 2"),
        array("Question 3", "Answer 3"),
        array("Question 4", "Answer 4")
    );

    echo '<p>';

    foreach ($questions as $key => $question) {
        echo '<a href="#', $key, '">', $question[0], '</a><br />';
    }

    echo '</p>';

    foreach ($questions as $key => $question) {
        echo '<h2><a name="', $key, '">', $question[0], '</a></h2>';
        echo '<p>', $question[1], '</p>';
    }

?>
于 2011-09-09T23:58:00.643 に答える