0

私は基礎にサイトを構築しようとしています。次のパートで苦労しています。

まず、コードの一部を紹介します。

<dl class="contained tabs">
    <dd class="active"><a href="#contactForm">Neem contact op</a></dd>
    <dd><a href="#hoofdleiders">Hoofdleiders</a></dd>
    <dd><a href="#leiders">Leiders</a></dd>
    <dd><a href="#staf">Staf</a></dd>
  </dl>

<ul class="tabs-content contained">

    <li id="contactFormTab" class="active">
      <div class="row collapse">
        <div class="two columns"><label class="inline">Naam</label></div>
        <div class="ten columns"><input type="text" name="naam" id="naam" placeholder="Naam" value="' . (isset($_POST['naam']) ? htmlspecialchars($_POST['naam']) : '') . '" />
      </div>
      <div class="row collapse">
        <div class="two columns"><label class="inline">Email</label></div>
        <div class="ten columns"><input type="text" name="mail" id="mail" placeholder="jouwnaam@jouwadres.nl" value="' . (isset($_POST['mail']) ? htmlspecialchars($_POST['mail']) : '') . '" />
      </div>
      <div class="row collapse">
        <div class="two columns"><label class="inline">Onderwerp</label></div>
        <div class="ten columns"><input type="text" name="onderwerp" id="onderwerp" placeholder="onderwerp" value="' . (isset($_POST['mail']) ? htmlspecialchars($_POST['onderwerp']) : '') . '" />
      </div>

      <label>Wat wilt u zeggen?</label>

      <textarea id="bericht" name="bericht" rows="3">' . (isset($_POST['bericht']) ? htmlspecialchars($_POST['bericht']) : '') . '</textarea><br />

      <button type="submit" name="submit" class="radius button">Verstuur</button>

    </li>

<li id="hoofdleidersTab">
      <ul class="block-grid five-up">
        <li><a href="mailto:mal@serenity.bc.reb"><img src="http://placehold.it/200x200&text=[persoon]" /><br />Naam 1</a></li>
        <li><a href="mailto:zoe@serenity.bc.reb"><img src="http://placehold.it/200x200&text=[persoon]" /><br />Naam 2</a></li>

      </ul>
    </li>
    <li id="leidersTab">
      <ul class="block-grid five-up">
        <li><a href="mailto:mal@serenity.bc.reb"><img src="http://placehold.it/200x200&text=[persoon]" /><br />Naam 1</a></li>
        <li><a href="mailto:zoe@serenity.bc.reb"><img src="http://placehold.it/200x200&text=[persoon]" /><br />Naam 2</a></li>

      </ul>
    </li>
    <li id="stafTab">
      <ul class="block-grid five-up">
        <li><a href="mailto:mal@serenity.bc.reb"><img src="http://placehold.it/200x200&text=[persoon]" /><br />Naam 1</a></li>
        <li><a href="mailto:zoe@serenity.bc.reb"><img src="http://placehold.it/200x200&text=[persoon]" /><br />Naam 2</a></li>

      </ul>
    </li>

したがって、ddクラスが「active」でliクラスが「active」の場合、タブが強調表示されます。

私の質問は、<dd>URLで渡された変数を使用して、クラスを別のアイテム(2番目のアイテムとしましょう)と別のli id(2番目のアイテムと言いましょう)(hoofdleiders)に変更するにはどうすればよいですか?

これはお問い合わせフォームの一部であり、必要な場所に正しく着陸できるようにしたいと考えています。

4

3 に答える 3

0

アイテムをループしたくない場合は、IF句を使用してアクティブな状態を追加できます。

<dl class="contained tabs">
 <dd<?php if(!isset($_GET['tab']) || $_GET['tab']=='contactform') echo ' class="active"'; ?>>
      <a href="#contactForm?tab=contactform">Neem contact op</a>
 </dd>
 <dd<?php if($_GET['tab']=='hoofdleiders') echo ' class="active"'; ?>>
      <a href="#hoofdleiders?tab=hoofdleiders">Hoofdleiders</a>
 </dd>
 <dd<?php if($_GET['tab']=='leiders') echo ' class="active"'; ?>>
      <a href="#leiders?tab=leiders">Leiders</a>
 </dd>
 <dd<?php if($_GET['tab']=='staf') echo ' class="active"'; ?>>
      <a href="#staf?tab=staf">Staf</a>
 </dd>
</dl>

最初のタブに追加!isset($_GET['tab']) ||して、このタブがデフォルトになるようにしました($_GET['tab']設定されていない場合)。

次に、それぞれLIに同じPHPを追加します。

<li id="contactFormTab"<?php if(!isset($_GET['tab']) || $_GET['tab']=='contactform') echo ' class="active"'; ?>>

...

<li id="hoofdleidersTab"<?php if($_GET['tab']=='hoofdleiders') echo ' class="active"'; ?>>

...

<li id="leidersTab"<?php if($_GET['tab']=='leiders') echo ' class="active"'; ?>>

...

<li id="stafTab"<?php if($_GET['tab']=='staf') echo ' class="active"'; ?>>
于 2013-01-17T15:49:46.507 に答える
0

ページのレンダリングを行わない場合は、次のようにPHPを使用できます。

<? if ($_GET['param_name'] == 'somecondition'):?>
<html do something>
<?endif;?>

または、ページレンダリングがユーザーアクションと相互作用した後、jqueryを使用して作成できます。

function getURLParameter(name) {
return decodeURI(
    (RegExp(name + '=' + '(.+?)(&|$)').exec(location.search)||[,null])[1]
);
}

そして、この関数を使用してurlのパラメーターを取得し、javascript/jqueryでロジックを作成していくつかのクールなものを作成できます。もっと何か必要な場合は私に知らせてください。

于 2013-01-17T15:52:47.350 に答える
0

この方法で実装することはお勧めしません。コードをより適切に管理するには、フレームワークまたはMVCのようなパターンを使用する必要があります。ただし、あなたの場合、これはおそらく単純で明確な解決策です。

各タブを、タブと同じ名前の個別のphpファイルに保存します。たとえば、staf.phpファイルは次のようになります。

  <ul class="block-grid five-up">
    <li><a href="mailto:mal@serenity.bc.reb"><img src="http://placehold.it/200x200&text=[persoon]" /><br />Naam 1</a></li>
    <li><a href="mailto:zoe@serenity.bc.reb"><img src="http://placehold.it/200x200&text=[persoon]" /><br />Naam 2</a></li>
 </ul>

メインcontact.phpはこんな感じになります

<?php 
# list all available tabs
$tabs = array(
   'contactform' => 'Contact form', 
   'hoofdleiders' => 'Hoofdleiders', 
   'leiders' => 'Leiders', 
   'staf' => 'Staf',
);

# get the selected Tab from the url, if no tab is specified use the first tab
$selectedTab = filter_input(INPUT_GET, 'tab');
if (!in_array($selectedTab, $tabs))
    $selectedTab = $tabs[0];
?>   
<dl class="contained tabs">
    <?php foreach($tabs as $name => $label):?>
    <dd <?php echo ($tabName == $selectedTab ? "class='active'" : ""; ?>><a href="#<?php echo $name ?>"><?php echo $label ?></a></dd>
    <?php endforeach; ?>
</dl>

<ul class="tabs-content contained">
<?php foreach($tabs as $tabName): ?>
    <li id="<?php echo $tabName; ?>" <?php echo ($tabName == $selectedTab ? "class='active'" : ""; ?>>
        <?php require_once ($tabName . ".php"); ?>
    </li>
<?php endforeach; ?>
</ul>

この場合、contact.phpそれぞれのすべてのphpファイルはli同じフォルダーにある必要があり、次のcontact.phpようなURLでファイルを呼び出すことができます。contact.php?tab=staf

于 2013-01-17T16:03:49.357 に答える