for문으로 만들어진 span값에 원하는 값이 있을경우 span에 class를 추가할수 있나요??
본문
안녕하세요?
달력을 만드는중인데 특정일자에 특정 클래스를 부여하고싶습니다.
만약 11,12,13일에만 원하는 클래스명을 부여해줄수 있나요?
<?php
//---- 오늘 날짜
$thisyear = date('Y'); // 4자리 연도
$thismonth = date('n'); // 0을 포함하지 않는 월
$today = date('j'); // 0을 포함하지 않는 일
//------ $year, $month 값이 없으면 현재 날짜
$year = isset($_GET['year']) ? $_GET['year'] : $thisyear;
$month = isset($_GET['month']) ? $_GET['month'] : $thismonth;
$vr_date = isset($_GET['day']) ? $_GET['day'] : $today;
$prev_month = $month - 1;
$next_month = $month + 1;
$prev_year = $next_year = $year;
if ($month == 1) {
$prev_month = 12;
$prev_year = $year - 1;
} else if ($month == 12) {
$next_month = 1;
$next_year = $year + 1;
}
$preyear = $year - 1;
$nextyear = $year + 1;
$predate = date("Y-m-d", mktime(0, 0, 0, $month - 1, 1, $year));
$nextdate = date("Y-m-d", mktime(0, 0, 0, $month + 1, 1, $year));
//총일수 구하기
$max_day = date('t', mktime(0, 0, 0, $month, 1, $year)); // 해당월의 마지막 날짜
//echo '총요일수'.$max_day.'<br />';
//시작요일 구하기
$start_week = date("w", mktime(0, 0, 0, $month, 1, $year)); // 일요일 0, 토요일 6
//총 몇 주인지 구하기
$total_week = ceil(($max_day + $start_week) / 7);
//마지막 요일 구하기
$last_week = date('w', mktime(0, 0, 0, $month, $max_day, $year));
?>
<?php
//화면에 표시할 화면의 초기값을 1로 설정
$vr_date=1;
//총 주 수에 맞춰서 세로줄 만들기
for($i=1; $i <= $total_week; $i++){?>
<tr>
<?php
//총 가로칸 만들기
for ($j = 0; $j < 7; $j++) {
//첫번째 주이고 시작요일보다 $j가 작거나 마지막주이고 $j가 마지막 요일보다 크면 표시하지 않음
echo '<td height="50" valign="top"><span>';
if (!(($i == 1 && $j < $start_week) || ($i == $total_week && $j > $last_week))) {
//오늘 날짜면 굵은 글씨
if ($year == $thisyear && $month == $thismonth && $vr_date == date("j")) {
//날짜 출력
echo $vr_date;
} else {
echo $vr_date;
}
//날짜 증가
$vr_date++;
}
echo '</span></td>';
}
?>
사용한 코드입니다.
궁극적으로는 td에는 id / span에는 class를 부여하고싶습니다.
!-->답변 2
for ($j = 0; $j < 7; $j++) {
echo '<td height="50" valign="top"><span>';
->
for ($j = 0; $j < 7; $j++) {
if ($vr_date == 11 || $vr_date == 11 || $vr_date == 11)
$class = 'aaa';
else
$class = 'bbb';
echo '<td height="50" class="' . $class . '" valign="top"><span>';
<style>
.match_day { color: orange; cursor: pointer; }
</style>
<?php
//화면에 표시할 화면의 초기값을 1로 설정
$vr_date=1;
//총 주 수에 맞춰서 세로줄 만들기
$matchdays = [11, 12, 13];
echo '<table border="1">';
for($i=1; $i <= $total_week; $i++){
echo '<tr>';
//총 가로칸 만들기
for ($j = 0; $j < 7; $j++) {
$html_id = '';
$html_classname = '';
if (in_array($vr_date, $matchdays) == true) {
$html_id = ' id="match_id_' . $vr_date . '" onclick="alert(this.outerHTML)"';
$html_classname = ' class="match_day"';
}
//첫번째 주이고 시작요일보다 $j가 작거나 마지막주이고 $j가 마지막 요일보다 크면 표시하지 않음
echo '<td height="50" valign="top"' . $html_id . '><span' . $html_classname . '>';
if (!(($i == 1 && $j < $start_week) || ($i == $total_week && $j > $last_week))) {
//오늘 날짜면 굵은 글씨
if ($year == $thisyear && $month == $thismonth && $vr_date == date("j")) {
//날짜 출력
echo $vr_date;
} else {
echo $vr_date;
}
//날짜 증가
$vr_date++;
}
echo '</span></td>';
}
echo '</tr>';
}
echo '</table>';
?>
답변을 작성하시기 전에 로그인 해주세요.