Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Передать значение переменной в др фаил
Форумы портала PHP.SU » » Вопросы новичков » Передать значение переменной в др фаил

Страниц (1): [1]
 

1. Antowka - 26 Октября, 2012 - 12:31:26 - перейти к сообщению
Нужна помощь:
Есть сайтик написанный на php + smarty, есть блок новостей, его вид задаётся в файле tpl, он выводит все новости, а мне нужно эти же новости выводить на главную, но только три шт, самые свежие, я написал второй шаблончик который выводит по три штуки НО!, теперь встала задача чтобы шаблончики переключались в зависимости с какой стр они подгружаются. Я написал условие if-else, и они переключаются по нему, но для его работы необходимо передать со страницы где он запрашивается значиние в переменную, которая управляет условием.
Т.е. думаю в сторону массива $REQUEST, добавить него своё значение, чтобы при загрузке стр, это значение инициализировалось. Вот только как это реализоать. чтобы значение попадало туда без формы отправки.

схематично:

1) main.tpl
$selector="1"
{module name="publication function="show_publication" catigory_id="news"} //smarty - это строкой подключается вывод новостей

2) news.tpl
$selector="любое значение"

3) обработчки.php :

в обработчике есть доступ через $REQUEST[catigory_id] к catigory_id, может можно как-то добавить своё значение например $REQUEST[selector]???

CODE (htmlphp):
скопировать код в буфер обмена
  1. if($selector=="1"){
  2. исполнить шаблон 1
  3. }
  4. else
  5. {
  6. исполнить шаблон 2
  7. }
  8.  

как передать эти $selector в обработчик.php
2. Okula - 26 Октября, 2012 - 13:32:36 - перейти к сообщению
Antowka, передавай через GET. В условии оператор равенства это двойной символ "=". Тоесть, должно быть записано так:
PHP:
скопировать код в буфер обмена
  1. if($selector=="1"){
  2. исполнить шаблон 1
  3. }
  4. else
  5. {
  6. исполнить шаблон 2
  7. }

Просто символ "=" - это оператор присвоения.
3. Antowka - 26 Октября, 2012 - 13:42:46 - перейти к сообщению
Я только начинаю изучать php в $_get или $_post могу что-то отправлять только формой, а как это сделать при загрузке стр автоматом.
А было бы ещё лучше добавить своё значение, типа $REQUEST[selector] в в реквест. Тогда вообще можно красиво оформить отправку через smarty.

например:
{module name="publication function="show_publication" catigory_id="news" selector="1"}

а в обработчике получить из в:

$select=$REQUEST[selector]

Как можно добавить новое значение в массив $REQUEST. Это реально?
4. Okula - 26 Октября, 2012 - 13:54:24 - перейти к сообщению
Antowka, все значения переданные через ссылку - переданы методом GET.
Для GET никакая форма не нужна.
5. Antowka - 26 Октября, 2012 - 14:15:15 - перейти к сообщению
Okula пишет:
Antowka, все значения переданные через ссылку - переданы методом GET.
Для GET никакая форма не нужна.


Дурацкий вопрос наверное, а как сформировать get запрос кодом в ссылке? можно код подсказать?

Ведь так не будет работать?

CODE (htmlphp):
скопировать код в буфер обмена
  1. <?php
  2. $_GET[selector]=1;
  3. ?>
6. Okula - 26 Октября, 2012 - 14:34:38 - перейти к сообщению
Например есть такая ссылка:
CODE (htmlphp):
скопировать код в буфер обмена
  1. http://site.ru/page.php?id=3

Всё что идёт после "?" это GET параметры.
В этой ссылке 1 GET параметр - параметр id со значением 3.
Перейдя по этой ссылке можно будет получить значение id таким образом:
PHP:
скопировать код в буфер обмена
  1. echo $_GET['id']; // выведет 3
7. Antowka - 26 Октября, 2012 - 14:43:11 - перейти к сообщению
Okula пишет:
Например есть такая ссылка:
CODE (htmlphp):
скопировать код в буфер обмена
  1. http://site.ru/page.php?id=3

Всё что идёт после "?" это GET параметры.
В этой ссылке 1 GET параметр - параметр id со значением 3.
Перейдя по этой ссылке можно будет получить значение id таким образом:
PHP:
скопировать код в буфер обмена
  1. echo $_GET['id']; // выведет 3


Это я понимаю ;)

загвоздка в том что у меня это главная стр сайта, то есть всё открывается при запросе rctcars.com, и блок новостей я хочу вывести без кликов по ссылкам
8. thesameson - 26 Октября, 2012 - 20:57:47 - перейти к сообщению
Antowka пишет:
загвоздка в том что у меня это главная стр сайта, то есть всё открывается при запросе rctcars.com, и блок новостей я хочу вывести без кликов по ссылкам

PHP:
скопировать код в буфер обмена
  1. if($_SERVER['REQUEST_URI']=='/'){
  2. // главная
  3. }
9. Antowka - 26 Октября, 2012 - 22:16:30 - перейти к сообщению
thesameson пишет:
Antowka пишет:
загвоздка в том что у меня это главная стр сайта, то есть всё открывается при запросе rctcars.com, и блок новостей я хочу вывести без кликов по ссылкам

PHP:
скопировать код в буфер обмена
  1. if($_SERVER['REQUEST_URI']=='/'){
  2. // главная
  3. }


Спосибо большое!!! Возьму на вооружение этот вариант, но я не дождался и методом тыка сделал всё так, как предпологал и оно заработало.

в main.tpl
{module name="publications" function="show_publications" category_id="News" selector="1" }

а в обработчике php

получили значение selector так

$select=$_REQUEST[selector];
if(.... ну и так далее. Спасибо всем что помогли!!!

 

Powered by ExBB FM 1.0 RC1