| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Perl: разработка для Web > Вызов процедуры из скрипта |
| Автор: dron000 17.12.2009, 11:22 |
| Добрый день! Есть перловый скрипт main.pl c кучей процедур, генерящих в том числе основную html форму, необходимо по нажатию кнопки на форме запускать процедуру proc1 из этого же скрипта и после ее отработки либо выводить строчку об успешном выполнении под кнопкой либо всплывающее окошко(можно что-то типо хинта) не меняя и не перерисовывая остальную часть формы на которой нажимается кнопка. Как можно это сделать? Спасибо! |
| Автор: DEER 18.12.2009, 00:27 |
| смотри в сторону AJAX |
| Автор: dron000 18.12.2009, 09:38 |
| Да я вроде увидел неплохое решение со всплывающими окнами.Остался вопрос- как вызвать perl-процедуру по нажатию кнопки с html странички так чтобы не перезагружать страничку.Нажал- отработала perl- процедура. |
| Автор: DEER 18.12.2009, 10:08 |
| нажал на кнопку - js script вызывает на стороне сервера по Http процедуру она отработала - вернула в Js результат Что сложного? http://www.rsdn.ru/article/inet/jQuery.xml#EAIAE |
| Автор: dron000 18.12.2009, 10:49 |
| Процедура находится в perl-скрипте в котором еще много чего есть. Вот как к ней обратиться? |
| Автор: DEER 18.12.2009, 17:51 |
| нууууу ты CGI скрипты делал когда нить? вот делаешь себе на сервер запрос к скрипту ttt.cgi в этом скрипте выполняешь процедуру. Или я что то не понимаю? |
| Автор: dron000 18.12.2009, 18:58 |
Добавлено через 5 минут и 27 секунд Раз так все очевидно не мог бы ты указать каким именно образом с html страницы вызывается перловая процедура например proc содержащаяся в main.pl ? Заранее спасибо! Добавлено через 6 минут и 58 секунд да...чуть не забыл...это все что должно происходить. |
| Автор: kavkaz 18.12.2009, 19:05 |
| dron000, а вы прочитали про AJAX, как вам рекомендовали ? у вас проблема с запуском скрипта? с вызовом процедуры в нем? |
| Автор: dron000 18.12.2009, 19:11 |
| Мне не нужно огород городить, просто вызвать перловую процедуру из скрипта.... |
| Автор: ginnie 18.12.2009, 19:22 | ||
| dron000, Вам надо модифицировать mail.pl так, чтобы была возможность выполнить из него только процедуру func1(). Например:
|
| Автор: dron000 18.12.2009, 21:41 |
| Ок. Лучше тогда отдельный создать. А как именно,вызвать так чтобы html форма из которой он вызван не изменилась, т.е. он у меня ничего не рисует и ничего что меняло бы данные на форме не делает,мне просто нужно чтобы он выполнился по нажатию на кнопку. |
| Автор: DEER 19.12.2009, 00:17 | ||
если будешь использовать jQuery, то код будет примерно такой
|
| Автор: dron000 19.12.2009, 00:28 |
| Это из html страницы такой запрос прокатит? А стандартные методы есть? |
| Автор: DEER 19.12.2009, 10:58 |
| прокатит. то код из js функции, которую надо вызвать на странице стандартные есть. но это проще и кроссбраузерно |
| Автор: dron000 21.12.2009, 16:08 | ||
Есть у меня кнопочка на странице:
Как зыпустить скрипт на выполнение так чтобы отсаться на текущей странице? |
| Автор: DEER 21.12.2009, 23:20 | ||||||
ну ведь все написал ведь
только перед запуском скачай jQuery и пропиши в head (перед описанием функции onPush)
соответственно "/js/jquery.js" - относительный путь к файлу библиотеки Добавлено @ 23:24 а ещё лучше
Тогда, скрипт выведет сообщение, если только фунция из перла отработает нормально. В противном случает ничего не произойдет. |
| Автор: dron000 22.12.2009, 10:30 |
| Спасибо.Ща попробую |
| Автор: dron000 22.12.2009, 12:23 |
| Загрузил jquery разместил все везде где нужно при попытке обратиться к jquery.js сообщение apache Premature end of script headers: jquery-1.3.2.js |
| Автор: DEER 22.12.2009, 12:32 |
| код давай! |
| Автор: ginnie 22.12.2009, 12:39 |
| dron000, у Вас apache почему-то пытается выполнить js-файл, вместо того, чтобы просто отдать клиенту его содержимое. Скорее всего дело в настройках apache. |
| Автор: kavkaz 22.12.2009, 13:48 |
| продолжая мысль ginnie, предположу что этот самый *.js лежит в cgi-bin, где апачем прописано исполнять любые файлы |
| Автор: dron000 22.12.2009, 14:13 |
| Да но при перекладывании в другую он отдает клиенту содержимое (это видно потому что выполненение тела скрипта продолжается),но при обращении непосредственно к его частям ошибка та же. |
| Автор: dron000 22.12.2009, 14:30 | ||
| Может некорректно оформлен jquery.js ?Как я понимаю первая строчка - путь к интепретатору? Добавлено через 10 минут и 12 секунд Код perl такой:
Строку интерпретатора #! убрал, jquery-1.3.2.js не в cgi-bin. Страница загружается,а вот когда наживаешь на кнопку в левом ниженем углу - ошибка на странице, в логах пусто. |
| Автор: dron000 22.12.2009, 15:21 | ||
Если смотреть html код печатаемый на страницу:
|
| Автор: Bulat 22.12.2009, 15:40 |
Открой свой "жс"ник в каком-нить иде и проверь на кодировку, на то какими символами заканчиваются строки и т.п. Как правило такие ошибки из-за подобных мелочей, подводных камней и прочего, что явным образом не влияет на работу самого алгоритма |
| Автор: DEER 22.12.2009, 15:50 | ||
| во первых ошибка оформления - может ошибся когда набирал... сделай, чтобы выводился такой текст
у тебя точно-точно jquery-1.3.2.js лежит в корневой директории сайта? судя по твоему примеру она у тебя должна лежать в www папке (короче там, где index.html) Добавлено через 2 минуты и 12 секунд и путь к script.pl проверь! он у тебя странный. хотя бы так "/script.pl", если он лежит в корневой папке сайта, иначе ещё путь к нему надо указывать (/cgi-bin/script.pl) |
| Автор: dron000 22.12.2009, 16:38 | ||
| Насчет jquery.js - он с офф сайта и я его не менял.Просмотрел- с виду все ок. Когда разделил на два тега:
В access логе ушло обращение к jquery-1.3.2.js - думаю это не очень хорошо. jquery-1.3.2.js - точно лежит в www. Путь к script.pl верный т.к. страницу на которой эта несчастная кнопка рисует pl скрипт в этой же папке /cgi-bin/ |
| Автор: DEER 22.12.2009, 16:48 |
| неее Добавлено через 21 секунду пиши полный путь к файлу /cgi-bin/script.pl |
| Автор: dron000 22.12.2009, 17:01 |
| Попробовал- не помогло.Кроме того это будет неверно т.к. если задать так он выйдет на папку вверх а уж там точно script.pl нет-он в текущей папке откуда работает скрипт рисующий саму форму. |
| Автор: dron000 23.12.2009, 11:23 |
| Как можно еще проверить что jquery подгружается? И нужна ли все-таки строка доступа к интерпретатору в начале? Есть еще способ запуска скрипта без анализа возврата без аякса? |
| Автор: DEER 23.12.2009, 12:51 | ||
попробуй так
если пользуешься FF, то там есть Консоль Ошибок (Ctrl + Shift + J) можно после загрузки страницы или после нажатия кнопки посмотреть какая ошибка |
| Автор: dron000 23.12.2009, 14:01 |
| Не помогло...все тоже - при нажатии кнопки в левом нижнем углу - ошибка на странице. |
| Автор: DEER 23.12.2009, 14:29 |
| какая ошибка? Добавлено через 1 минуту прикрепи архив с файлами - я у себ попробую посмотреть и если что поправлю |
| Автор: dron000 23.12.2009, 15:54 |
| Онсновная форма file.pl Сами понимаете- все обрезано, но и в таком варианте тож самое. |
| Автор: DEER 23.12.2009, 16:47 |
| а script.pl где???? если это sverka.pl , то надо поменять имя файла во первых. Во вторых sverka.pl должен быть CGI приложением (так же как file.pl отдавать нужный аголовок браузеру и т.п. |
| Автор: dron000 23.12.2009, 18:48 |
| Ну да это он и есть...И это уже я переименовал.Кроме того мне нужно чтобы он просто отработал ничего не поменял и не возвращал ничего браузеру. |
| Автор: DEER 23.12.2009, 19:35 |
| не, браузеру он должен возвращать 200 статус. Иначе js думает, что не отработало Я севодня добрый и все починил. что я убрал: 1 закоментировал вызов процедуры - раскоментируйте у себя, потому что я не могу ещё и в ней разбираться а вас. 2 Переписал первую строчку в pl файлах, чтоб они у меня запускались - верните на свои значения. вроде все. у меня работает |
| Автор: DEER 23.12.2009, 19:35 |
| ещё jQuery другой залил, ибо тот какой то битый |
| Автор: dron000 23.12.2009, 22:19 |
| Ок.Спасибо.Гляну. Добавлено через 1 минуту и 11 секунд А ....чуть не забыл.....у тебя-то заработало? Добавлено через 2 минуты и 33 секунды Блин...не увидел верхнее! |
| Автор: DEER 23.12.2009, 22:42 |
| а вообще, прочти какую нить книжку по веб+перл |
| Автор: mvsgt 24.12.2009, 09:44 |
А это ещё зачем? |
| Автор: dron000 24.12.2009, 11:18 |
| Такое ощущение что результат кэшируется или что-то в этом духе....потому что выполняется скрипт только первый раз. Далее при повторных нажатиях на кнопку тупо всплывают таблички и и как такового запуска скрипта не происходит. |
| Автор: DEER 24.12.2009, 12:14 | ||||
чтобы не кешировалось, можно вместо
написать
|
| Автор: dron000 24.12.2009, 12:40 |
| Спасибо!Работает.Откуда ты это узнал - дай сслыку. |
| Автор: DEER 24.12.2009, 12:49 |
| Google.com |
| Автор: sir_nuf_nuf 24.12.2009, 14:08 | ||
Ога, и забить кэш кучей фуфла. |
| Автор: DEER 24.12.2009, 14:19 |
| ну ему же надо, чтобы отработал скрипт, а не то, что он возвращает |
| Автор: dron000 24.12.2009, 15:54 |
| А если чистить то как? |
| Автор: dron000 23.3.2010, 17:56 |
| А как вернуть после вызова скрипта управление в на ту же страницу или перезапросить ее? |