0

PHP で次の構造のテーブルを作成する必要があるとします。で識別されるすべてのセルNamedayHour は単なる指標です (毎日の場合は Mon0、Mon1 など)。その細胞に、日ごと、時間ごとに異なる情報を入れるべきです。

全体の構造は次のようになります。

<table border="1" >
<th>Hour</th>
<th>Mon 25-06-2012</th>
<th>Tue 26-06-2012</th>
<th>Wed 27-06-2012</th>
<th>Thu 28-06-2012</th>
<th>Fri 29-06-2012</th>
<tr><td>8:00</td><td>Mon0</td><td>Tue0</td><td>Wed0</td><td>Thu0</td><td>Fri0</tr>
<tr><td>8:20</td><td>Mon1</td><td>Tue1</td><td>Wed1</td><td>Thu1</td><td>Fri1</tr>
<tr><td>8:40</td><td>Mon2</td><td>Tue2</td><td>Wed2</td><td>Thu2</td><td>Fri2</tr>
<tr><td>9:00</td><td>Mon3</td><td>Tue3</td><td>Wed3</td><td>Thu3</td><td>Fri3</tr>
<tr><td>9:20</td><td>Mon4</td><td>Tue4</td><td>Wed4</td><td>Thu4</td><td>Fri4</tr>
<tr><td>9:40</td><td>Mon5</td><td>Tue5</td><td>Wed5</td><td>Thu5</td><td>Fri5</tr>
</table>    

だから、私は配列を持っています:

$hoursMonday = array("8:00", "8:20", "8:40")
$hoursMondayAssigned = array("8:00", "8:20")
$hoursMondayAvailable = array("8:40")

月曜日から金曜日まで毎日、これらの 3 つの配列があります。

次に、毎日の時間をテーブルに書き込む必要があります。たとえば、この場合、月曜日と時間のセルを配置する必要があります: 8:40 のテキストは「利用可能」で、「8:00」と「8:20」の場合は月曜日の列に配置する必要があります。時間、システムはそれらの両方に「ビジー」を設定する必要があります。

例の配列を使用した結果のテーブルは、次のテーブルのようになります。

<table border="1" >
<th>Hour</th>
<th>Mon 25-06-2012</th>
<th>Tue 26-06-2012</th>
<th>Wed 27-06-2012</th>
<th>Thu 28-06-2012</th>
<th>Fri 29-06-2012</th>
<tr><td>8:00</td><td>BUSY</td><td>Tue0</td><td>Wed0</td><td>Thu0</td><td>Fri0</tr>
<tr><td>8:20</td><td>BUSY</td><td>Tue1</td><td>Wed1</td><td>Thu1</td><td>Fri1</tr>
<tr><td>8:40</td><td>AVAILABLE</td><td>Tue2</td><td>Wed2</td><td>Thu2</td><td>Fri2</tr>
<tr><td>9:00</td><td>Mon3</td><td>Tue3</td><td>Wed3</td><td>Thu3</td><td>Fri3</tr>
<tr><td>9:20</td><td>Mon4</td><td>Tue4</td><td>Wed4</td><td>Thu4</td><td>Fri4</tr>
<tr><td>9:40</td><td>Mon5</td><td>Tue5</td><td>Wed5</td><td>Thu5</td><td>Fri5</tr>
</table>
</html>

これを解決するには、jQueryまたはPHPのみを使用したいと思います。

注意すべきことの 1 つは、頻度のパラメーター (この場合は 10 分) が異なる場合があることです。たとえば、頻度が 30 分に設定されている場合、時刻は 8:00 、8:30、9:00、9:30 などになります。

jQueryを使用してこれを解決する方法がよくわかりません。for ループを使用してテーブルを作成する方法は知っていますが、日と時間に応じて正しいセルに情報を配置する必要がある場合、複雑さがレベルアップしています。

ありがとう。

4

1 に答える 1

0

PHP で次のように実行して、1 時間ごとに割り当て済みか無料かを確認できます。

$hoursMonday = array("8:00", "8:20", "8:40");
$hoursMondayAssigned = array("8:00", "8:20");
$hoursMondayAvailable = array("8:40");

foreach( $hoursMonday AS $hour ) {
    if( in_array( $hour, $hoursMondayAssigned ) ) {
        echo 'Busy at ' . $hour;
    } else if ( in_array( $hour, $hoursMondayAvailable ) ) {
        echo 'Free at ' . $hour;
    }
}

すべての日のループを自動化するには、日ごとに再帰配列を使用することをお勧めします。次に例を示します。

$monday = array(
    'free' => array(
        '08:40', '09:00'
    ),

    'busy' => array(
        '08:40',
    ),

    'free' => array(
        '09:00',
    ),
);
于 2012-06-27T06:57:20.580 に答える