PDA

Просмотр полной версии : Как сделать выполнение кода PHP на одной страничке?


ClawX
01.05.2006, 18:54
Здравствуйте.

На страничке есть 6 калькуляторов, расположены они по вертикали, следовательно страничка скроллится вниз. Так же на страничке 6 форм, для каждого калькулятора в формах прописано: method="post" action="calc_php_от 1 до 6.php".

Проблема в следующем:
Например, прокручиваю страничку вниз до шестого калькулятора, нажимаю кнопку «расчет» (<input type="submit" />) и после этого у меня открывается уже другая страничка, прописанная в action.
В итоге получается, что человек нажал «расчет» в самом низу странички и после расчета ему открывается эта же страничка, только она уже в самом верху и каждый раз надо скроллить вниз, чтобы посмотреть результат…

Вопрос:
Можно ли как-нибудь сделать так, чтобы была одна страничка с калькуляторами (т.е. формы для заполнения и кнопка «расчет»), а вычисления выполнялись в отдельном или в этом же php файле и уже из php файла передавались на страничку с калькуляторами, в определенные поля без смещений?

Подскажите, пожалуйста, как можно решить эту проблему.

P.S. В книжках по PHP, которые есть у меня, везде описываются варианты где при клике на кнопку открывается новое окно с результатом…

RaZEr
01.05.2006, 20:55
Самое простое это <a name="calc6"> и редирект на script.php#calc6. Можно сделать и лучше, - через AJAX, но это при условии наличия опыта в JavaScript.

Kvarx
02.05.2006, 00:36
Можно скрипту передавать номер калькулятора который был нажат, потом грузиться страницу и в нее впихивать кусочек кода на JS, чтоб браузер пролистывал к нужному калькулятору.

shurik90
05.05.2006, 18:07
согласен с RaZEr

Тебе надо сделать в каждой форме method="post" action="script.php#calc_1 до 6" где script.php - название самой формы с калькуляторами

в самом скрипте повставлять якоря с id="calc_1 до 6". Якоря можно вставлять в таблицу или специально поставить div для каждого. Естественно якоря надо ставить чуть выше того места где изображается соответствующий калькулятор.

ClawX
22.05.2006, 08:54
Если делать через: method="post" action="script.php#calc_1 до 6" где script.php - название самой формы с калькуляторами - то почему-то не происходит перехода на якорь...
Сделал через JS переход на якорь, но почему-то не всегда срабатывает переход. Потом в JS скрипт дописал, чтобы переход осуществлялся с задержкой. Т.е. прописал в onLoad функцию из скрипта для перехода на якорь и в скрипте поставил задержку в 2 секунды. Теперь переходит...

Подскажите, пожалуйста, так и должно быть или в чем-то другом проблема?

RaZEr
22.05.2006, 09:00
Если js вызывается до того, как загрузилась страница, то возможно что сама закладка ещё не создалась (код описывающий её не загрузился). По сути должно работать если js вызывать в самом конце страницы, но также можно прописать чтобы срабатывало по onload.

ClawX
22.05.2006, 19:01
2 RaZEr
Это понятно, что пока не загрузилась странички, то и переходить некуда :) Через JS все, работает.

Тогда получается, что использование method="post" action="script.php#calc_1 до 6" бесполезно? Вся проблема, что используя такой способ, у меня не происходит переход на якоря...

RaZEr
23.05.2006, 00:45
Да, возможно что внутри action он закладку не подхватывает. Попробуй простой редирект: document.location.href = 'script.php?arg61='+document.getElementById('arg61')+'&arg62='+document.getElementById('arg62')+'&act=sum#calc_6';

Thekostya
30.05.2006, 15:03
Можно сделать проще.
В самом низу страницы вставлять ява скрипт который ставит фокус на нужный калькулятор.
скрипт будет срабатывать в самом конце, калькуляторы уже загружены.

RaZEr
30.05.2006, 15:09
...о чём было сказано двумя сообщениями выше.