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

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Ajax и подключение файлов

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


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

> Без описания
etoYA
Отправлено: 04 Июля, 2015 - 21:39:08
Post Id



Участник


Покинул форум
Сообщений всего: 1859
Дата рег-ции: Июль 2011  
Откуда: Крым


Помог: 21 раз(а)




index.php
PHP:
скопировать код в буфер обмена
  1.  
  2. require_once('template/main.phtml');
  3. require_once('someClass.php');
  4.  

template/main.phtml
PHP:
скопировать код в буфер обмена
  1.  
  2. // какие-то кнопки, при клике на которые вызывается AJAX функция, которая подключает следующий файл
  3.  

template/somefile.phtml
PHP:
скопировать код в буфер обмена
  1.  
  2. // получаем массив с данными
  3. SomeClass::someMethod($_GET['someParam']);
  4.  
  5. // тут должен быть вывод этих данных, но ошибка Fatal error: Class 'SomeClass' not found
  6.  


Можно ли избежать этого не подключая файл с классом повторно? Если да, то как?

(Отредактировано автором: 04 Июля, 2015 - 21:39:49)

 
 Top
DeertOff
Отправлено: 04 Июля, 2015 - 22:33:03
Post Id



Гость


Покинул форум
Сообщений всего: 126
Дата рег-ции: Июль 2011  


Помог: 3 раз(а)




1. Ждать гета. (Ratchet и тд.).
2. Сохранить все данные перед выходом из индекс(куки сессия база и тд.).
3. Курлом подгрузить данные без ajax.(лучше уж инклюдом)

Это всё если я правильно понял что к чему...

PHP не сохроняет состояние и не работает в браузуре - Отдал страницу дальше javaScript, можно отдать заранее доп данные для js.

(Отредактировано автором: 04 Июля, 2015 - 22:39:00)

 
 Top
etoYA
Отправлено: 04 Июля, 2015 - 22:40:17
Post Id



Участник


Покинул форум
Сообщений всего: 1859
Дата рег-ции: Июль 2011  
Откуда: Крым


Помог: 21 раз(а)




DeertOff, чо?)) Ладно, подключу файл повторно .;)
 
 Top
DeertOff
Отправлено: 04 Июля, 2015 - 22:51:53
Post Id



Гость


Покинул форум
Сообщений всего: 126
Дата рег-ции: Июль 2011  


Помог: 3 раз(а)




Вопрос был очень странным Радость
 
 Top
DelphinPRO
Отправлено: 04 Июля, 2015 - 22:52:24
Post Id



Активный участник


Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012  


Помог: 353 раз(а)




etoYA пишет:
Можно ли избежать этого не подключая файл с классом повторно? Если да, то как?

просто используй include_once()
или require_once()

Функцию *_once можешь писать сколько хочешь раз, но реально файл будет подключен только при самом первом вызове.


Если же ты говоришь о том, чтобы как раз не писать такие включения в каждом файле - то нужно учить матчасть по автолоаду.
(Добавление)
Блин, ты же давно на форуме... я тебя помню. Неужели не научился до сих пор нормально и четко задавать вопросы? Улыбка


-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
etoYA
Отправлено: 04 Июля, 2015 - 23:27:57
Post Id



Участник


Покинул форум
Сообщений всего: 1859
Дата рег-ции: Июль 2011  
Откуда: Крым


Помог: 21 раз(а)




DelphinPRO, дада)

Я не знал как его задать, поэтому суть выложил в коде).

К примеру. Есть файл

index.php (пусть в нем будет автолоад + подключение шаблона).
index.phtml (в нем основная часть шаблона, в которую подключается дополнительные секции)
section.phtml (какая-то секция, которая вызывается AJAX'ом и подгружается в index.phtml при каком то событии (пусть клик по ссылке).

Дак вот, проблема в том, что в index.php файл с классом уже подключен (неважно, autoload'ом, либо обычным includ'ом), но выходит, что после вызова ajax'ом файла section.phtml в нем файл с классом не подключен. Можно ли сделать так, чтоб все файлы, которые подключены в index.php, были так же подключены и во всех файлах (которые подключаются через AJAX).
Вся проблема исчезает, если просто подключить файл с классом в файле section.phtml, но если подобных файлов будет 10?) То писать какой-нибудь boostrap и подключать его в каждом файле?
Если опять плохо объяснил, то попробую завтра)))
(Добавление)
DelphinPRO, автолоад типо такого?

PHP:
скопировать код в буфер обмена
  1. function __autoload($class){
  2.      require_once($class.'.php');
  3. }

Прикреплено изображение (Нажмите для увеличения)
Без имени-1.png

(Отредактировано автором: 04 Июля, 2015 - 23:36:01)

 
 Top
DeertOff
Отправлено: 04 Июля, 2015 - 23:40:47
Post Id



Гость


Покинул форум
Сообщений всего: 126
Дата рег-ции: Июль 2011  


Помог: 3 раз(а)




Не как.
1 запрос= 1(новое) выполнение php

после выполнения index.php он "умирает" дальше только заново.

только websocket и тому подобные вещи но их лучше делать не на пыхе.
 
 Top
etoYA
Отправлено: 04 Июля, 2015 - 23:51:46
Post Id



Участник


Покинул форум
Сообщений всего: 1859
Дата рег-ции: Июль 2011  
Откуда: Крым


Помог: 21 раз(а)




DeertOff, вот видимо со второго раза я смог объяснить).Спасибо
 
 Top
DeertOff
Отправлено: 04 Июля, 2015 - 23:56:24
Post Id



Гость


Покинул форум
Сообщений всего: 126
Дата рег-ции: Июль 2011  


Помог: 3 раз(а)




Придётся подключать каждый раз "bootstrap" файл. Поэтому все пытаются сделать 1 точку входа.
 
 Top
etoYA
Отправлено: 04 Июля, 2015 - 23:59:37
Post Id



Участник


Покинул форум
Сообщений всего: 1859
Дата рег-ции: Июль 2011  
Откуда: Крым


Помог: 21 раз(а)




DeertOff, ну что ж поделать)) На самом то деле, файлов будет не 10, а максимум 2, поэтому меня это не пугает, а вопрос задал на будущее)
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB