| 
			| 
					
						| Arina 
								Гость
 | 
								|  | « :  26-05-2004 12:21 »   |  | 
 
 Здравствуйте все!  Помогите, пожалуйста, разобраться - где же ошибка? Вроде все верно:  function display_calendar)$month,$year,$mode:
 |
 $cal = " ";
 $cal .= )$mode == 1 ? "<table border=0>
 <tr><td>".display_calendar)$prev_month,$prev_year,0:.
 "</td><td rowspan=2 align=\"right\">".
 "<table border=1 class=\"cal\" rules=\"all\" cellspacing=0px          bordercolor=#cccccc>"
 {  "<table class=\"small\" rules=\"all\" bordercolor=#cccccc cellspacing=0px>":;
 
 /////////////////////////////////////
 вывод конкретно календаря
 /////////////////////////////////////
 
 $cal .= )$mode == 1 ?  "</td></tr>
 <tr>
 <td align=\"left\">display_calendar)$next_month,$next_year,0:
 </td></tr></table>"
 {   " ":;
 
 echo $cal;
 
 "
 
Тут проблема только в коде HTML, как мне думается. Строится таблица, где в первой строке в первой ячейке находится календарь на предыдущий месяц, и большая ячейка на 2 ряда для основного календаря.  Во второй строке в ячейке находится календарь на следующий месяц.  Если вместо употребленных сейчас в коде display_calendar($prev_month,$prev_year,0) поставить например просто слово "agb", то таблица формируется верно. А вот с употреблением функции - календарик "выскакивает" извне таблицы наверх..   Что исправить?    Спасибо |  
						| 
								|  |  
								|  |  Записан | 
 |  |  | 
	| 
			| 
					
						| Arina 
								Гость
 | 
								|  | « Ответ #1 : 26-05-2004 12:27 »  |  | 
 
 Напишу попонытней: function display_calendar)$month,$year,$mode:
 |
 $cal = " ";
 $cal .= )$mode == 1 ?
 "<table border=1 rules=\"all\">
 <tr><td>" .display_calendar)$prev_month,$prev_year,0:.
 "</td><td rowspan=2 align=\"right\">".
 "<table border=1 class=\"cal\" rules=\"all\" cellspacing=0px>"
 
 {  "<table class=\"small\" rules=\"all\" >":;
 
 /////////////////////////////////////
 
 $cal .= /*вывод календаря собственно*/
 
 ///////////////////////////////////////////////////
 
 $cal .= )$mode == 1 ?
 "</td></tr>
 <tr>
 <td align=\"left\">display_calendar)$next_month,$next_year,0:
 </td></tr></table>"
 
 {   " ":;
 
 echo $cal;
 
 "
 |  
						| 
								|  |  
								|  |  Записан | 
 |  |  | 
	| 
			| 
					
						| MOPO3 
								Ай да дэдушка! Вах...Команда клуба    Offline 
								Пол:   
								Холадна аднака!
								
								
								
								
								
								   | 
								|  | « Ответ #2 : 26-05-2004 12:40 »  |  | 
 
 Обрати внимание на выделеную мной строку. Ты вызов функции вписала как стринг. Напишу попонытней: function display_calendar)$month,$year,$mode:
 |
 $cal = " ";
 $cal .= )$mode == 1 ?
 "<table border=1 rules=\"all\">
 <tr><td>" .display_calendar)$prev_month,$prev_year,0:.
 "</td><td rowspan=2 align=\"right\">".
 "<table border=1 class=\"cal\" rules=\"all\" cellspacing=0px>"
 
 {  "<table class=\"small\" rules=\"all\" >":;
 
 /////////////////////////////////////
 
 $cal .= /*вывод календаря собственно*/
 
 ///////////////////////////////////////////////////
 
 $cal .= )$mode == 1 ?
 "</td></tr>
 <tr>
          <td align=\"left\">". display_calendar($next_month,$next_year,0)." </td></tr></table>"
 {   " ":;
 
 echo $cal;
 
 "
 |  
						| 
								|  |  
								|  |  Записан | 
 
 MCP, MCAD, MCTS:Win, MCTS:Web |  |  | 
	| 
			| 
					
						| Arina 
								Гость
 | 
								|  | « Ответ #3 : 26-05-2004 12:44 »  |  | 
 
 Спасибо за замечание, но не это является ошибкой. В данном случае я просто проверяла как он выведет это как стринг - и тогда таблица нормаьно выводиться.А если как-раз вставить вызов функции, то получаемый календарик выскакивает из общей таблицы. Ума не приложу - почему так? :new_shot:
 |  
						| 
								|  |  
								|  |  Записан | 
 |  |  | 
	| 
			| 
					
						| MOPO3 
								Ай да дэдушка! Вах...Команда клуба    Offline 
								Пол:   
								Холадна аднака!
								
								
								
								
								
								   | 
								|  | « Ответ #4 : 26-05-2004 12:50 »  |  | 
 
 Ты неправильно формируеш ХТМЛ. У тебя при выводе не закрываются какие то из тегов. Если я внимательно посмотрел, то в случае с $mode != 1 у тебя таблица открывается, но не закрывается. |  
						| 
								|  |  
								|  |  Записан | 
 
 MCP, MCAD, MCTS:Win, MCTS:Web |  |  | 
	| 
			| 
					
						| Arina 
								Гость
 | 
								|  | « Ответ #5 : 26-05-2004 12:52 »  |  | 
 
 Ты неправильно формируеш ХТМЛ. У тебя при выводе не закрываются какие то из тегов хмммм, да, мне тоже думается что-то с html. Но никак не врублюсь. Скорей всего, именно в вызове мелкой таблички проблема...? |  
						| 
								|  |  
								|  |  Записан | 
 |  |  | 
	| 
			| 
					
						| MOPO3 
								Ай да дэдушка! Вах...Команда клуба    Offline 
								Пол:   
								Холадна аднака!
								
								
								
								
								
								   | 
								|  | « Ответ #6 : 26-05-2004 12:53 »  |  | 
 
 Ты неправильно формируеш ХТМЛ. У тебя при выводе не закрываются какие то из тегов хмммм, да, мне тоже думается что-то с html. Но никак не врублюсь. Скорей всего, именно в вызове мелкой таблички проблема...?Так и есть, смотри мой пост выше |  
						| 
								|  |  
								|  |  Записан | 
 
 MCP, MCAD, MCTS:Win, MCTS:Web |  |  | 
	| 
			| 
					
						| Arina 
								Гость
 | 
								|  | « Ответ #7 : 26-05-2004 13:41 »  |  | 
 
 Ты неправильно формируеш ХТМЛ. У тебя при выводе не закрываются какие то из тегов хмммм, да, мне тоже думается что-то с html. Но никак не врублюсь. Скорей всего, именно в вызове мелкой таблички проблема...?Так и есть, смотри мой пост вышеИзвиняюсь, нет вылетел ненадолго... Да нееет. Короче, проблема такая: если делаю: <table> <tr><td>some_tekst</td> <td rowspan=2>big calendar </tr> <tr><td>some_tekst_2</td></tr> </table> то строится как надо Если же вместо , например, some_tekst, вставить ". function(..)." то вызываемая этой функцией табличка календаря вылетает из своей ячейки... Во |  
						| 
								|  |  
								|  |  Записан | 
 |  |  | 
	| 
			| 
					
						| Arina 
								Гость
 | 
								|  | « Ответ #8 : 26-05-2004 14:41 »  |  | 
 
 Ты неправильно формируеш ХТМЛ. У тебя при выводе не закрываются какие то из тегов. Если я внимательно посмотрел, то в случае с $mode != 1 у тебя таблица открывается, но не закрывается. Серьезно? Спасибо, сейчас посмотрю. А я думала, что не срабатывает конструкция 
 $cal .= )$mode == 1: ? "<table border=0>
 <tr><td>".
 display_calendar)$prev_month,$prev_year,0:.
 "</td><td rowspan=2 align=\"right\">".
 "<table border=1 class=\"cal\" rules=\"all\">"
 
 { "<table class=\"small\" rules=\"all\">";
 
Че не так? Вроде ясен смысл... Если $mode есть '1', то делай большую таблу. Но я ведь и передаю '1' |  
						| 
								|  |  
								|  |  Записан | 
 |  |  | 
	| 
			| 
					
						| Skubent 
								Гость
 | 
								|  | « Ответ #9 : 26-05-2004 16:29 »  |  | 
 
 Arina, а ничего, что у тебя функция при mode=1 рекурсивная получается ? |  
						| 
								|  |  
								|  |  Записан | 
 |  |  | 
	| 
			| 
					
						| Arina 
								Гость
 | 
								|  | « Ответ #10 : 26-05-2004 17:01 »  |  | 
 
 Arina, а ничего, что у тебя функция при mode=1 рекурсивная получается ? Не, ничего:) Скорее даже круто получается:) Ну а ошибка нашлась. Блин, весь день промучилась. Короче, там функция выводя календаря присваивалась в переменную, которая потом выводилась снова. Получалось масло масленое   Skubent, может ты примерно это и имел в виду? |  
						| 
								|  |  
								|  |  Записан | 
 |  |  | 
	| 
			| 
					
						| Skubent 
								Гость
 | 
								|  | « Ответ #11 : 27-05-2004 06:59 »  |  | 
 
 Arina, не примерно, а именно это. Золотое правило php - вывод в документ в теле функции лучше не применять. И рекурсия не так уж и хороша - язык-то интерпретируемый. |  
						| 
								|  |  
								|  |  Записан | 
 |  |  | 
	| 
			| 
					
						| Arina 
								Гость
 | 
								|  | « Ответ #12 : 27-05-2004 08:12 »  |  | 
 
 Arina, не примерно, а именно это. Золотое правило php - вывод в документ в теле функции лучше не применять. И рекурсия не так уж и хороша - язык-то интерпретируемый. Спасибо, учту на будущее    |  
						| 
								|  |  
								|  |  Записан | 
 |  |  | 
	|  |