0

特定のプロファイルをリストし、特定の方法で整理する php と jQuery を使用してレイアウトを生成しようとしています。

具体的には、プログラム タイトルの配列があり、ページ上のすべてのプログラム タイトルをヘッダーとして 1 行に 2 つのプログラム タイトルで一覧表示したいと考えています。次に、それぞれがプログラム名の配列を含む名前の配列を持っています。関連するプログラムのタイトルの下にある配列に特定のプログラムを持っているすべてのユーザーを一覧表示したいと思います。さらに、名前は非表示で始まり、各プログラムのタイトルの下には、チューターを非表示および表示するボタンがあります。ここで Bootstrap を使用してこのレイアウトを作成しました。

        <?php
        include ('objects.php');

        function tutorCreator($tutorName, $boxNum, $spanClass){
            include ('objects.php');
            echo "<div class='" . $spanClass . " tutorBox" . $boxNum . "'>";
            }
    ?>
        <div class="row-fluid">
            <span class="programHeader span5">DreamWeaver</span>
            <span class="programHeader offset1 span5">GIMP</span>
        </div>
        <div class="row-fluid">
            <span class="span2 showTutors">Show tutors</span>
            <span class="span2 offset4 showTutors">Show tutors</span>
        </div>
            <div class="row-fluid">
                <?php 
                    tutorCreator('Kevin Marks', '1', "span4");
                    tutorCreator('Kevin Marks','2', "span4 offset2");
                ?>
            </div>
            <div class="row-fluid">
                <?php 
                    tutorCreator('Helen Larson', "1", "span4");
                    tutorCreator('Helen Larson','2', "span4 offset2");
                ?>
            </div>
        <div class="row-fluid">
            <span class="programHeader span5">Google Analytics</span>
            <span class="programHeader offset1 span5">HootSuite</span>
        </div>
        <div class="row-fluid">
            <span class="span2 showTutors">Show tutors</span>
            <span class="span2 offset4 showTutors">Show tutors</span>
        </div>
            <div class="row-fluid">
                <?php 
                    tutorCreator('Ken Gato', '3', "span4");
                    tutorCreator('Julien Mans', '4', "span4 offset2");
                ?>
            </div>
            <div class="row-fluid">
                <?php 
                    tutorCreator('Ommed Kosh', '3', "span4");
                ?>
            </div>

チューター名に追加されたクラスは、適切な「チューターを表示」ボタンがリストされたときに表示されることと、レイアウトを支援することを目的としています。

objects.php ファイルには、チューターのリストとプログラムのリストを含む配列が含まれています。このレイアウトはうまくいきます。ただし、objects.php の配列にプログラムまたはチューターを追加するたびにこのレイアウトが自動的に更新されるように、php コードを変更しようとしています。私は数日間それを理解しようとしてきましたが、うまく機能する自動的に更新されたレイアウトを取得できません。これはおそらく広すぎる質問だと思いますが、障害にぶつかったので、どんな助けも本当に感謝しています. 現在のレイアウトのより完全なバージョンは、http ://www.tutorgrams.com/tutors で確認できます。助けてくれてありがとう。

ここに objects.php ファイルがあります (簡潔にするためにいくつかのチューターとプログラムを削除しています):

<?php

$programs = array();

$programs['DreamWeaver'] = array(
'name' => 'DreamWeaver');

$programs['GIMP'] = array(
'name' => 'GIMP');

$programs['Google Analytics'] = array(
'name' => 'Google Analytics');

$programs['HootSuite'] = array(
'name' => 'HootSuite');


$tutors['Helen Larson'] = array(
'name' => 'Helen Larson',
'programs' => array('DreamWeaver', 'GIMP')
);

$tutors['Kevin Marks'] = array(
    'name' => 'Kevin Marks',
'programs' => array('DreamWeaver', 'GIMP')
);

$tutors['Ommed Kosh'] = array(
'name' => 'Ommed Kosh',
'programs' => array('Google Analytics')
);

$tutors['Julien Mans'] = array(
'name' => 'Julien Mans',
'programs' => array('HootSuite')
);

$tutors['Ken Gato'] = array(
'name' => 'Ken Gato',
'programs' => array('Google Analytics')
);

?>
4

1 に答える 1

1

これはどのように見えますか?

<?php 
$numProgs = count($programs);
$progs = array_keys($programs);

$i = 0; ?>

<?php while($i < $numProgs): ?>

    <div class="row-fluid">
        <span class="programHeader span5"><?php echo $progs[$i]; ?></span>
        <span class="programHeader offset1 span5"><?php echo $progs[$i + 1]; ?></span>
    </div>
    <div class="row-fluid">
        <span class="span2 showTutors">Show tutors</span>
        <span class="span2 offset4 showTutors">Show tutors</span>
    </div>

    <div class="row-fluid">
    <?php foreach($tutors as $name => $data) {
        $tutProgs = $data['programs'];
        if(in_array($progs[$i], $tutProgs)) {
            tutorCreator($name, $i, "span4");
        }
    } ?>
    </div>

    <div class="row-fluid">
    <?php
        foreach($tutors as $name => $data) {
            $tutProgs = $data['programs'];
            if(in_array($progs[$i + 1], $tutProgs)) {
                tutorCreator($name, $i + 1, "span4 offset2"); 
            }
        }
    ?>
    </div>

    <?php $i += 2; ?>
<?php endwhile; ?>

おそらく少し最適化される可能性がありますが、私にとってはうまくいくようです。唯一のことは、私はあなたのテーマを持っていないので、まだ正しく見えないかもしれません.

于 2013-03-30T20:17:05.380 に答える