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 - вывод в документ в теле функции лучше не применять. И рекурсия не так уж и хороша - язык-то интерпретируемый. Спасибо, учту на будущее
|
|
|
Записан
|
|
|
|
|