2014-11-12 2 views
1

* 나는 온라인 달력의 PHP 코드를 발견추출 PHP 배열 값은 JQuery와

편집 형식으로 전달하고 사용자가 변수로 선택하는 날짜를 설정합니다 클릭 이벤트 상을 만들려고하고있다 (나중에 데이터베이스 쿼리에서 사용됩니다).

현재 특정 날짜를 분리하여 값으로 반환하고 싶지만 지금까지는 전체 배열 (1 2 3 4, 5 등) 만 반환 할 수 있습니다. 선택된 $ list_day의 특정 값을 전달할 방법이 있습니까? 문제

특정 루프 :

for($list_day = 1; $list_day <= $days_in_month; $list_day++): 
     $calendar.= '<td class="calendar-day">'; 
      /* add in the day number */ 
      $calendar.= '<div class="day-number">'.$list_day.'</div>'; 

전체 프로그램 코드 :

<!DOCTYPE html> 
    <html> 
    <head> 
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
     <script> 
      $(document).ready(function(){ 
       $("div").click(function(){ 
        alert($('.calendar-day').text()); 
         }); 
        }); 
     </script> 
    <style> 
     table.calendar      { border-left:1px solid #999; } 
     tr.calendar-row      { } 
     td.calendar-day      { min-height:80px; font-size:11px; position:relative; } * html div.calendar-day { height:80px; } 
     td.calendar-day-np     { background:#eee; min-height:80px; } * html div.calendar-day-np { height:80px; } 
     td.calendar-day-head    { background:#ccc; font-weight:bold; text-align:center; width:35px; padding:5px; border-bottom:1px solid #999; border-top:1px solid #999; border-right:1px solid #999; } 
     div.day-number:hover    { background:#eceff5; } 
     div.day-number      { background:#ffffff; padding:5px; color:#999; font-size:20px; font-weight:bold; float:right; margin:-5px -5px -5px -5px; width:40px; text-align:center; } 
     /* shared */ 
     td.calendar-day, td.calendar-day-np { width:35px; padding:5px; border-bottom:1px solid #999; border-right:1px solid #999; } 
    </style>  
</head> 
</html> 

<?php 
/* draws a calendar */ 
function draw_calendar($month,$year){ 

    /* draw table */ 
    $calendar = '<table cellpadding="0" cellspacing="0" class="calendar">'; 

    /* table headings */ 
    $headings = array('Su','M','T','W','Th','F','Sa'); 
    $calendar.= '<tr class="calendar-row"><td class="calendar-day-head">'.implode('</td><td class="calendar-day-head">',$headings).'</td></tr>'; 

    /* days and weeks vars now ... */ 
      $running_day = date('w',mktime(0,0,0,$month,1,$year)); 
      $days_in_month = date('t',mktime(0,0,0,$month,1,$year)); 
      $days_in_this_week = 1; 
      $day_counter = 0; 
      $dates_array = array(); 

    /* row for week one */ 
    $calendar.= '<tr class="calendar-row">'; 

    /* print "blank" days until the first of the current week */ 
    for($x = 0; $x < $running_day; $x++): 
     $calendar.= '<td class="calendar-day-np"></td>'; 
     $days_in_this_week++; 
    endfor; 

    /* keep going with days.... */ 
    for($list_day = 1; $list_day <= $days_in_month; $list_day++): 
     $calendar.= '<td class="calendar-day">'; 
      /* add in the day number */ 
      $calendar.= '<div class="day-number">'.$list_day.'</div>'; 

      /** QUERY THE DATABASE FOR AN ENTRY FOR THIS DAY !! IF MATCHES FOUND, PRINT THEM !! **/ 
      $calendar.= str_repeat('<p> </p>',2); 

    $calendar.= '</td>'; 
     if($running_day == 6): 
      $calendar.= '</tr>'; 
      if(($day_counter+1) != $days_in_month): 
       $calendar.= '<tr class="calendar-row">'; 
      endif; 
      $running_day = -1; 
      $days_in_this_week = 0; 
     endif; 
     $days_in_this_week++; $running_day++; $day_counter++; 

    endfor; 

    /* finish the rest of the days in the week */ 
    if($days_in_this_week < 8): 
     for($x = 1; $x <= (8 - $days_in_this_week); $x++): 
      $calendar.= '<div><td class="calendar-day-np"> </td></div>'; 
     endfor; 
    endif; 

    /* final row */ 
    $calendar.= '</tr>'; 

    /* end the table */ 
    $calendar.= '</table>'; 

    /* all done, return result */ 
    return $calendar; 
} 

/* sample usages */ 
echo '<h2>November 2014</h2>'; 
echo draw_calendar(11,2014); 

echo date('t',mktime(0,0,0,$month,1,$year)); 

?> 

답변

1

문제는 당신이 하루에 사용하는 JQuery와 선택기입니다. (문자 그대로)이

$('.calendar-day').text()

사용 : : 클래스 이름으로 모든 DIV 요소를 반환하는 대신이의

는 단지 텍스트를 반환합니다

$(this).text() 당신이 클릭 한 특정 div.