PHP の html テーブルから生成された余分なテーブル セルを削除したいと思います。この例の表の最後を参照してください: http://leobee.com/android/push/so/stdt3.php **まだ IE で動作するようにコードを更新していません。gecko ブラウザを使用してください。
jQuery でこの例を見つけました: http://www.w3schools.com/jsref/tryit.asp?filename=tryjsref_tr_deletecell。ただし、colspan セルが php で生成された後、余分なセルを削除する必要があります。
質問:
colspan セルが処理された後、php が DOM を操作して表のセルを削除することは可能ですか? 可能であれば、これを理解するプロセス、またはどのメソッドまたはライブラリを調べる必要があるかを規定できますか。
私のテーブルに似た別の例を知っていますか? プログラムで 1 日のスケジュールを時間別に作成し、イベントを 1 時間以上に拡張することができます。
コード:
<?php
// events array
$events = array(
array('Atari', 'Hall D' , '10:00 PM'),
array('Sonic the Hedgehog', 'Panel 4' , '11:00 AM'),
array('Bleach', 'Video 3' , '4:00 PM'),
array('Sailor Moon ', 'Panel 4' , '6:00 PM')
);
$events_flat = array();
foreach($events as $event)
{
$events_flat[$event[0]] = $event[1] . $event[2];
}
// location array
$locations = array(
'Arena', 'Hall D', 'Video 1', 'Video 2', 'Video 3',
'Video 4', 'Video 5', 'Video 6', 'HD Theater', 'Panel 1',
'Panel 2', 'Panel 3', 'Panel 4', 'WorkShop 1', 'WorkShop 2',
'WorkShop 3', 'WorkShop 4', 'Autograph 1', 'Autograph 2'
);
// event start time array
$times = array(
'9:00 AM', '10:00 AM', '11:00 AM','12:00 PM', '1:00 PM', '2:00 PM',
'3:00 PM', '4:00 PM', '5:00 PM', '6:00 PM', '7:00 PM',
'8:00 PM', '9:00 PM', '10:00 PM', '11:00 PM', '12:00 AM',
'1:00 AM', '2:00 AM'
);
$html = '<table><tr><td bgcolor="green"><table name="schedule" id="schedule" border="1" bordercolor="black"><tr><td></td>';
foreach ($times as $time)
{
$html .= '<td width="100" height="25" bgcolor="yellow">';
$html .= htmlspecialchars($time);
$html .= '</td>';
}
foreach ($locations as $location)
{
$html .= '<tr><td width="100" height="25" bgcolor="pink">';
$html .= htmlspecialchars($location);
$html .= '</td>';
foreach ($times as $time)
{
$event = array_search($location . $time, $events_flat);
if ($event === FALSE)
{
$html .= '<td width="100" height="25" bgcolor="#70DBDB">';
$html .= ' ';
}
else
{
//http://www.w3schools.com/jsref/tryit.asp?filename=tryjsref_tr_deletecell
//http://www.php.net/manual/en/function.array-pop.php
//duration in hours
// Todo detect ie and use colSpan
$duration =3;
$html .= '<td colspan="'.$duration.'" width="100" height="25" bgcolor="orange">';
$html .= htmlspecialchars($event);
//$event = array_pop($event-1);
}
$html .= '</td>';
// $deletecell=document.getElementById("schedule").rows[this];
// $deletecell.deleteCell(-1);
}
$html .= ' </tr>';
}
$html .= '</table></td></tr></table>';
echo $html;
?>