Jump to content

Hoax

User
  • Posts

    138
  • Joined

  • Last visited

Everything posted by Hoax

  1. Т.е. только так получится реализовать? Просто придется так каждый раз инклудить из файла в файл
  2. http://runnable.com/VSgOTbreInEChtUd/ajaxaf-for-php
  3. Опишу более детально. С помощью аякса мы получаем доступ к файлу, но зачастую, нас волнует не столько получаемый файл, а именно класс (или функция), который в нем находится, но вот проблема, в каком файле вызывать данную функцию. (чтобы все работало естественно) Как видно из примеров которые я указал. У МЕНЯ скрипты работают только тогда, когда я вызываю нужную функцию "f()" в том файле, в котором она была написала. Т.е. // ---- file.phpfunction f() {// написали}f() // вызвалиИ файле где у нас ajax, просто указали доступ к этом (file.php) файлу - тогда и именно тогда все получается, ф-я вызывается и ajax возвращает ее результат. НО! Что если мне необходимо (с точки зрения работы приложения и просто для удобства) вызвать эту функцию f(), в другом файле? Вот тут становится проблема
  4. Дело не начале кода с <?php, и его концом, я писал это только что, а не копировал из файла чтобы избежать кучи кода, само собой у меня имеется так // file.php<?phpfunction f() { echo $_GET['q']; }?>// ajax.php<?phpinclude 'file.php'f();?><script>... xhr.open()....</script>Но даже в данном случае не работает, как я уже сообщал. Т.е. в данном случает, php инклудит файл и вызывает функцию с ошибкой отсутствия $_GET['q'] (что естественно, параметр же будет передан только при клике). А после клика ничего не происходит, т.е. ошибки нет, просто ничего не выводится
  5. У меня всего два файла, файл с php-функцией, и ajax-файл, который его получает. Если сделать так // file.phpecho $_GET['q'];// ajax.php....xhr.open('GET', 'file.php?q=errg', true);...- работает! ______________ Но если сделать так // file.phpfunction f() { echo $_GET['q']; }// ajax.php....xhr.open('GET', 'file.php?q=errg', true);...- не работает ___________________________еще пример Если сделать так // file.phpfunction f() { echo $_GET['q']; }f();// ajax.php....xhr.open('GET', 'file.php?q=errg', true);...- работает. Но если сделать так // file.phpfunction f() { echo $_GET['q']; }// ajax.php<?phpf();?>....xhr.open('GET', 'file.php?q=errg', true);...или так // ajax.php<?phpinclude 'file.php' // или require_once разницы в данном случае не играетf();?>....xhr.open('GET', 'file.php?q=errg', true);- не работает
  6. Пересоздал тему для более легкого объяснения проблемы, которая до сих пор не решена. Задача банальная - вызвать функцию с помощью ajax при клике на кнопку. В первом файле, который необходимо вызвать я указываю следующее : // phpfunction a() {echo 'huu';}a(); // вызвалиВторой файл (где расположен ajax) вызывает открывает первый. // ajax file<button onclick="go()" id="div">0</button><p id="text"></p><script>function go() {var client = new XMLHttpRequest();client.onreadystatechange = handler;client.open("GET", '1.php'); // открываем файл и получаем ф-ю с вызовомclient.send();}function handler() {if(this.status == 200 && this.responseText != null) {document.getElementById('text').innerHTML = this.responseText;}}</script>В данном случае, все работает хорошо, но что делать, если мне надо вызвать функцию в другом файле (а не в том, где она была написана как в примере выше). Например так. // ajax file<?phprequire_once '1.php';a();?><button onclick="go()" id="div">0</button><p id="text"></p>........В данном случае при клике ничего не происходит...
  7. Я всего лишь хочу передать значение запроса в условиях аякса. Код самый обычный, брал с js ru Скопирую. // Пример с POSTvar xhr = new XMLHttpRequest();var params = 'name=' + encodeURIComponent(name) + '&surname=' + encodeURIComponent(surname);xhr.open("POST", '/submit', true)xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded')xhr.onreadystatechange = ...;xhr.send(params);— Постараюсь еще раз объяснить в чем проблема. Не получается передать значение $_POST между файлами. Если ajax составить так - // tmp.phpxhr.open("POST", '/model.php', true)А серверный файл так // model.phpecho $_POST['text'];То model.php получит значение (POST) и вернет его (echo). Но если будет так. // model.phpclass model { public function f() { echo $_POST['text']; }}// ajax сможет получить значение и его вернуть в том случае, если будет вызван соответствующий метод// т.е. этот :$obj = new model();$obj->f(); // НО (основная проблема), если метод $obj->f() я вызываю ИЗ ДРУГОГО файла, php говорит, что несуществует $_POST['text'], и ajax // ничего не возвращает Ошибка одна, со стороны php - отсутствует значение $_POST (но это даже не ошибка, просто пока значения этого значения нет (ничего не введено в форму. if(!empty($_POST['text'])) echo $_POST короче). Со стороны js, просто отсутствует вывод этого значения. Пробовал require_once - аналогично. Предположу, что это связано с очередной обработкой php и js
  8. Если в серверном файле указать следующее. // model.phpclass a {public function a() { echo $_POST['href']; }}$a = new a();$a->a();Вернет значение $_POST; А если в нем указать // model.phpclass a {public function a() { echo $_POST['href']; }}// global.phpinclude 'model.php';$a = new a();$a->a();Ничего не выйдет
  9. разница в том, что если я передал обычный get- (или) post-запрос средствами php в контроллер, я этот контроллер (точнее его класс) смогу инклудить в файл random.php и вызвать его из random.php с данными запроса. А ajax отказывается выполняться, если вызов класса происходит в другом файле.
  10. Допустим есть 3 файла (controller, model, view), первый получает запросы (POST) и передает второму, который записывает их в бд, а третий подготавливает их к выводу в шаблоне. Т.е. MVC. Ajax мы связываем с серверным файлом, который, по сути, должен выполнять одну из перечисленных выше функций, но какую? Если в ajax указать связь с файлом, который записывает данные бд (что очень удобно, т.к. мы получили запрос и сразу записали его), то этот класс (класс записи в бд) должен вызываться именно файле, в котором он объявлен (т.е. если в файле model.php мы объявили класс, то в нем же и должен идти вызов, т.е. $m = new model(); ) иначе AJAX не сможет организовать передачу. Т.е. при том условии, что класс model (в файле model.php) который записывает данные в бд, вызывается, скажем, в файле random.php, аякс не пашет. Как правильно организовать передачу, а то я уже запарился, надеюсь понятно объяснил, заранее спасибо.
  11. Проблема решена созданием таблицы с указанной кодировкой (имеется в виду DEFAULT CHARSET utf8)
  12. у меня xampp указал в .htaccess AddDefaultCharset UTF-8 но ничего не вышло
  13. В основных кодировках я могу поставить любую, но только из раздела utf8mb4_*** ______________________________ А вот саму базу поставил в utf8_general_ci но ситуация не изменилась Таблицу также перевел в указанную кодировку, но основные настройки phpmyadmin также не дают изменить кодировку общих настроек
  14. у меня какой-то баг с этим. Ставлю там "utf8_general_ci", сохраняется, и тут же возвращает прежний результат "utf8mb4_general_ci", который сейчас в итоге стоит.
  15. сделал также как указано в примере, перегрузил веб-сервер, введ данные- получил то же самое. где конкретно это указывать? Разкомментил строку в php.ini - ;default_charset = "UTF-8" Не вышло
  16. В PHP установил следующее mysqli->set_charset("utf8")при проверке mysqli->character_set_name() //показывает utf8Также поставил в корневой файл header( 'Content-Type: text/html; charset=utf-8' );В Notepad++ установил у всех файлов кодировку UTF8 БЕЗ BOM и все равно при записи в БД русских символов, вместо них выдает - ???? Что не так?
  17. В последнее время замечаю много сообщений о том, что __autoload хоть и полезная ф-я, однако более медленная чем include (хотя информацию об этом не нашел, если есть-скиньте). Также стек spl, который позволяет регистрировать несколько ф-й autoload, которые в массиве загружаются в порядке очереди. В связи с этим вопрос, стоит ли использовать данные технологии при постройке cms, а именно подключение и вызов классов url?
  18. Почему же велосипед? Я делаю Cms специально под формат сайта, многие популярные cms-ки предлагаются как гигантский шаблон, который пичкается модулями и плагинами для расширения, зачем это все нужно если легче (именно для меня самому создать то, что нужно, а не изучать чего там нету и дописывать). Joomla как раз таки популярна среди новичков, я сам начинал именно с Joomla, как и многие другие. Да спасибо, я как-то заходил на этот урок но что-то меня он не очень впечатлил, возможно чуть позже изучу его поподробнее
  19. В зависимости от кол-ва контента и его связи с другими компонентами. Для небольшой информации подойдет модуль. Я например сделал такой, который в админе собираю превьюшку новости со ссылкой на статью, правда без БД.
  20. Решил создать тестовую наиболее удобную для себя CMS (впервые), до этого пользовался Joomla (c шаблоном mvc), поэтому данный вид (немного измененный) проектирования я решил использовать и у себя. Пока я попробую кратко описать основную задумку все этого. Есть самый главный файл в корне сайта, напоминающий контроллер, так что можно назвать его так ControllerCore. ControllerCore - Этот файл получает значения GET запросов, в зависимости от которых вызывает класс, индивидуальный для указанной ссылки (страницы/ раздела меню). После подключения индивидуального класса, назовем его базовый класс страницы, этот класс вызывает 3 основных файла, которые формируют страницу: model, cotroller, view. (для каждого базового класса страницы есть свои MVC). Эти файлы являются дочерними (что собственно логично, потому что описывать идентичный код для каждой страницы в них было затруднительно), поэтому они наследуют отцов global_model, global_view, которые в свою содержат всю структуру, посредством вызова отдельных компонентов (классов данных меню и т.д.) В итоге мы получаем наследование уже имеющихся данных (всех), и при необходимости можем их предопределить, что позволит нам добавлять/удалять/изменять данные на конкретном разделе/страницы просто изменив необходимый класс. Что дает полный контроль над дизайном и данными. Собственно примерно так я вижу архитектуру сайта. Как считаете, годится ли она вообще?
  21. Я имел в виду содержание данных в MVC, в модели например содержаться данные из БД, которые нужно передать view, что собственно и можно сделать через создание объекта например. За ссылку спс, изучу.
  22. Хорошо.У меня есть 2 базовых класса, в одном данные, в другом их вывод, в них есть реализация методов. А также есть 2 дочерних, которые наследует каждый по своему классу, и если требуется - перераспределяют методы. Поэтому 2-м базовым классам нужен доступ друг к другу, чтобы получить данные и соответственно их представить, как и дочерним друг к другу, чтобы вывести предраспределенные методы. Базовые классы нужны лишь для того, чтобы избавить себя от мучения каждый раз описывать один и тот же метод. Не знаю, может быть это правда не правильно, просто я пока другого выхода не нашел
  23. куда? В абстрактный класс? Каким способом можно создать связь между двумя интерфейсами? С помощью их наследования?
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy