запуск скрипта php в модальном окне

SBM

Новичок
запуск скрипта php в модальном окне

Задача следующая:
есть текстовое поле, есть кнопка-"календарик": на ней щелкаешь открывается модальное окно, там файл со скиптом календаря, выбираешь дату и эта дата вставляется в текстовое поле родительского окна.

проблема в том, что открывая модальное окно
results = window.showModalDialog("calend.php") скрипт календаря calend.php не выполняется.

Отдельно localhost/calend.php работает.
 

Фанат

oncle terrible
Команда форума
во-первых, календарь не имеет смысла писать на пхп.
во-вторых, что значит - "не выполняется"? Какие-то признаки этого невыполнения существуют? А словами их сложно написать?
 

SBM

Новичок
имеет смысл, т.к. он должен быть с изменяемой датой, т.е можно пролистать на несколько месяцев вперед или назад.
а "не работает" - это значитп в модальном окне после пары ошибок выдается следующее:
>2030) $ac_year = 2030; if ($ac_month != date("n") or $ac_year != date("Y")) {$ac_j_dom = 1;$ac_j_dow = date("w",mktime(0,0,0,$ac_month,1,$ac_year));} else {$ac_j_dom = date("j");ac_j_dow = date("w");}} и так далее,
т.е код скрипта

-~{}~ 09.01.05 01:12:

может быть надо просто запустить скрипт как-нибудь так:
c:\webservers\php\php.exe -q http://localhost/calend.php?

но при именно таком варианте, он выдает пустое модальное окно со строкой состояния file:/// и далее указанный путь

-~{}~ 09.01.05 01:15:

кстати, такая штука реализована в phpmyAdmin .6.0-pl2 при корректировки поля date. но его код я осилить не смог =(
спасите...
 

Фанат

oncle terrible
Команда форума
т.е можно пролистать на несколько месяцев вперед или назад.
ну да, конечно, яваскрипту такая сложная задача не под силу.
в модальном окне после пары ошибок выдается следующее:
очень смешно.
Даже первоклашки с этого форма знают, что проекты свои надо запускать с верб-сервера, а не тыкая мышкой в файл в проводнике.
 

SBM

Новичок
ты по делу так ничего и не ответил...
как мне его запустить, строчку напиши, пожалуста
 

slach

Новичок
фанат =))
Server Side календари имеют право на жизнь

когда например у тебя можно выбрать только те даты, в которых есть определенные события... список событий на сервере (50-60 тыщ записей)...

автору вопроса я бы вместо
window.showModalDialog("calend.php")

посоветовал
<a href="calend.php" target="_blank" onclick="w=window.open('calend.php');w.focus();return false;">Показать календарь</a>

а в calend.php
<script language="javascript">
function SetDate(date) {
o=self.opener;
if (o) {
o.document.forms['<?=safeoutput($_GET['OwnerForm']);?>'].elements['<?=safeoutput($_GET['DataField'])'].value=date;
}
self.close();
}
</script>

так кросс платформенее
 

SBM

Новичок
Вот, спасибо, а то умные все стали... =)

Только можно пару комментариев
o.document.forms['<?=safeoutput($_GET['OwnerForm']);?>'].elements['<?=safeoutput($_GET['DataField'])'].value=date;
куда вернется значение выбранной даты в родительском окне

ps^ прошу громко не смеяться

ps2 модальное окно было бы приемущественней, т.к. пока его не закроешь никуда не денешься, а так оно может потеряться
 

slach

Новичок
модальных окон нет в браузерах отличных от MSIE
и некоторые MSIE based - tabbed browsing поделках

чтобы было еще чуть чуть понятнее
PHP:
<form name="test_form">
Вот сюда пойдет дата <input type="text" name="test_date">
<a href="calend.php?OwnerForm=test_form&DataField=test_date">выбрать дату из календаря</a>
</form>
safeoutput()
это функции которые фильтруют лищнее в имени переменной... например по regexp'у [0-9a-zA-Z_]

вообще судя по всему, у тебя ShowModalDialog тупо обращается НЕ К ТОМУ php скрипту... или к несуществующему =)

то, как ты сформулировал вопрос
"проблема в том, что открывая модальное окно
results = window.showModalDialog("calend.php") скрипт календаря calend.php не выполняется. "
не выполняется это НЕ ФОРМУЛИРОВКА =)
что именно не выполняется?
выводится в браузер что ?
ты вообще проверял у тебя обращения к браузеру есть ?
 

SBM

Новичок
нет открывается правильный файл, который и есть календарь
в броузер (дочернее окно) выводится код php-скрипта календаря так, как бы это было если не был запущен аппач в купе с php и mysql.
если запускать localhost/calend.php - календарь нормально выводится, через showModalDialog - такая ерунда

-~{}~ 11.01.05 13:45:

по поводу safeoutput() - это станданртная функция или какая-то подключаемая
Call to undefined function: safeoutput()
 

Фанат

oncle terrible
Команда форума
slach
я смотрю, ты спишь и видишь титул любимца ламеров.
продолжай в том же духе.
они бедные, без такого защитника уже расплакались все.
 

SBM

Новичок
Фанат
делать вид, что ты умный молча, проще всего
я не пойму другого: форумы нужны, чтобы быстро получить конкретный ответ на вопрос, а не "читай мануал"... Отвечать нужно так же развернуто, как вы и требуете задавать вопрос. Да уровни есть разные и от этого никуда не денешься.
Грамотно ответил и вопросов меньше будет.

зы% сам ламер =)
 

Фанат

oncle terrible
Команда форума
не дорос еще, чтобы решать, для чего форумы нужны, а для чего - нет.
Заведи свой и там командуй.
И вообще - не к тебе обращались
 

slach

Новичок
;) Фанат нет, сплю и вижу как ты от изжоги помрешь =)

SBM
ты прежде чем херней страдать...
сделай без showModal

есть подозрение что делая showmodal ты обрашаешься не к localhost/calend.php
а к какому нибудь
192.168.0.1/calend.php
на котором у тебя например php "не прибинден"

в error.log апача гляди может там чего полезное...
 

Фанат

oncle terrible
Команда форума
slach
Не надо изобразать из себя умника.
Во-первых, не надо МНЕ рассказывать про сервер сайд календари.
Во-вторых, твоё
что именно не выполняется?
выводится в браузер что ?
я написал с самого начала. Только оно до клиента все равно не доходит
ЧИТАТЬ научись сначала, неграмотный.
а потом уже вылезай со своими советами.
 

SBM

Новичок
slach
Злой этот Фанат какой-то...

По теме: твой пример работает, спасибо. Только без safeoutput().

Относительно showModal: как я его только не запускал:
calend.php
localhost/calend.php
http://localhost/calend.php
c:/webservers/calend.php и т.д.

в результаье сделал календарь на js =) и все прекрасно работает.
 

Фанат

oncle terrible
Команда форума
я не злой, пока при мне не писать очевидный бред, выдавая себя за умного
 

SBM

Новичок
я не выдавал себя за умного, а нижайшем образом спросил как выйти из ситуации.

к тому же и сам ты не очень внимателен: я писал пример того, что выдает броузер, после чего ты взъелся.
(кстати обычно, кто сердится, тот и не прав, а причина твоей злости не моя тупость, а то, что ты сам ответа не знаешь)
 

Фанат

oncle terrible
Команда форума
обычно, кто сердится, тот и не прав
распространенная отмазка идиотов.
к тому же, тебя вобще не должно колыхать - сержусь я, или нет.
Как меня совершенно не колышет твоё мнение.
Данная присказка если и имеет смысл, то только если люди спорят на равных, а не когда ты пришел просить, а начинаешь выпендриваться.

к тому же, тупость оппонента раздражает всех - и тех, кто прав, и тех, кто неправ. Так что, забудь про эту дурацкую присказку. Нсли, в состоянии, конечно, понять сказанное мной.
причина твоей злости не моя тупость, а то, что ты сам ответа не знаешь
Я тебе дал ответ, в самом начале.
А причина моего раздражения в том, что ты, не умея понять ответ, сваливаешь все на то, что тебе, видите ли, не так объясняют.

При этом ты забываешь, что мне на твой скрипт и на твое мнение - плевать. и начинаешь МНЕ что-то доказывать, а не себе. Ради бога. можешь доказывать что угодено. Если тебе это важнее собственного скрипта.

И вообще. Твой вопрос нарушает правила.
В правилах сказано - на задавать вопросы из фака.
А вопрос, "почему у меня не работает пхп в модальном диалоге" относится к факу PHP FAQ: Самые основы. Как работает PHP.
 

SBM

Новичок
ты здесь столько слов сказал, что вполне бы мог просто ответить нормально на вопрос, а не начинать оскорблять.
Почему slach'у не "в падлу" все это писать, общаясь с "тупым", а тебе видете ли раздражительно.
И вообще, если бы тебе было, как ты говоришь "все равно", ты бы здесь столько желчью не плевался.

ps^ и извини, что я к тебе не на Вы
 

Фанат

oncle terrible
Команда форума
тебя никто не оскорблял.
что и как мне писать - это не твое дело.
я окончательно убедился, что обсудить мою персону тебе гораздо важнее, чем свою проблему.
 
Сверху