PHP скрипт оценки на PHP + jQuery + AJAX


Содержание

PHP: скрипт оценки на PHP + jQuery + AJAX

Освойте бесплатно наиболее простой, быстрый и гибкий способ создавать адаптивные веб-сайты.

Дизайн лендинга

Создавайте дизайн любых сайтов — для себя и на заказ!

Популярное

  • Главная
  • ->
  • Материалы
  • ->
  • Скрипт опроса на PHP и MySQL с использованием Ajax и админкой

Reg.ru: домены и хостинг

Крупнейший регистратор и хостинг-провайдер в России.

Более 2 миллионов доменных имен на обслуживании.

Продвижение, почта для домена, решения для бизнеса.

Более 700 тыс. клиентов по всему миру уже сделали свой выбор.

Бесплатный Курс «Практика HTML5 и CSS3»

Освойте бесплатно пошаговый видеокурс

по основам адаптивной верстки

на HTML5 и CSS3 с полного нуля.

Фреймворк Bootstrap: быстрая адаптивная вёрстка

Пошаговый видеокурс по основам адаптивной верстки в фреймворке Bootstrap.

Научитесь верстать просто, быстро и качественно, используя мощный и практичный инструмент.

Верстайте на заказ и получайте деньги.

Что нужно знать для создания PHP-сайтов?

Ответ здесь. Только самое важное и полезное для начинающего веб-разработчика.

Узнайте, как создавать качественные сайты на PHP всего за 2 часа и 27 минут!

Создайте свой сайт за 3 часа и 30 минут.

После просмотра данного видеокурса у Вас на компьютере будет готовый к использованию сайт, который Вы сделали сами.

Вам останется лишь наполнить его нужной информацией и изменить дизайн (по желанию).

Изучите основы HTML и CSS менее чем за 4 часа.

После просмотра данного видеокурса Вы перестанете с ужасом смотреть на HTML-код и будете понимать, как он работает.

Вы сможете создать свои первые HTML-страницы и придать им нужный вид с помощью CSS.

Бесплатный курс «Сайт на WordPress»

Хотите освоить CMS WordPress?

Получите уроки по дизайну и верстке сайта на WordPress.

Научитесь работать с темами и нарезать макет.

Бесплатный видеокурс по рисованию дизайна сайта, его верстке и установке на CMS WordPress!

Хотите изучить JavaScript, но не знаете, как подступиться?

После прохождения видеокурса Вы освоите базовые моменты работы с JavaScript.

Развеются мифы о сложности работы с этим языком, и Вы будете готовы изучать JavaScript на более серьезном уровне.

*Наведите курсор мыши для приостановки прокрутки.

Скрипт опроса на PHP и MySQL с использованием Ajax и админкой

Размер: 56,3 Мб.

Длительность: 23 мин. 33 сек.

В этом видеоуроке мы с вами рассмотрим установку на сайт опроса «Smart PHP Poll«.

Он использует базу данных и технологию Ajax для отображения результатов голосования без перезагрузки страницы.

Илон Маск рекомендует:  Отправка SMS сообщений с подменой отправителя

Данный опрос легко интегрируется в любую страницу сайта и обладает гибко настраиваемым внешним видом.


Управление опросами осуществляется через удобную админ-панель. Оттуда вы можете создавать, редактировать и удалять опросы, смотреть статистику и настраивать их внешний вид на сайте.

Исходный скрипт был мной немного доработан, в частности исправлены проблемы с кодировками и произведена локализация интерфейса.

Вы можете просмотреть этот урок прямо сейчас, либо скачать его себе на компьютер по ссылке выше.

Под видео вы найдете сокращенную текстовую версию для этого видеоурока.

Краткий обзор урока (все подробности смотрите в видео):

Будем действовать по небольшому плану, который вы найдете чуть ниже. Итак, начинаем:

Подготовительный этап — создаем на локальном компьютере хост, с которым будем работать. Если вы хотите работать сразу с «живым» сервером — то пожалуйста, данный этап можете пропустить.

1. Указываем в файле conf.php данные для подключения к базе данных

— Хост: localhost (обычно)

— Имя базы данных: smartphppoll (создадим ее чуть позже)

— Пользователь, подключающийся к базе данных: root (по умолчанию; в вашем случае указывайте нужного пользователя)

— Пароль для подключения к базе данных: » (отсутствует по умолчанию для пользователя root; в вашем случае указывайте нужный пароль)

2. Загружаем файлы на сервер

Берем папку с дополнительными материалами и закачиваем содержимое папки smart_php_poll на сервер.

Вдобавок к этому, закидываем в ту же папку файл poll.php (страница, в которую мы будем интегрировать опрос), файл .htaccess (для изменения кодировки веб-сервера в Денвере на UTF-8) и папку styles (в ней лежат стили для страницы poll.php).

3. Создаем в phpmyadmin базу данных с именем smartphppoll

При создании базы выставляем везде кодировку utf8_unicode_ci.

4. Выполняем со вкладки SQL запрос из приложенного SQL-файла (или импортируем его через вкладку import)

Из папки с дополнительными материалами берем файл base.sql, копируем все его содержимое и вставляем в специальное поле для выполнения SQL-запроса к базе smartphppoll.

5. После успешного выполнения запроса проверяем содержимое базы данных и убеждаемся, что все ок

После получения сообщения об успешном выполнении запроса просмотрите таблицы на предмет того, чтобы данные отображались корректно (в частности, чтобы кириллические символы выглядели как надо).

6. Обращаемся к файлу admin.php через браузер и логинимся (логин по умолчанию: admin, пароль по умолчанию: password)

7. Создаем новый опрос в админ-панели и получаем его ID.

На первом шаге нам надо указать название опроса и количество вариантов ответа. На следующем шаге нужно указать эти самые варианты ответа.

После завершения создания запроса вы получите соответствующее сообщение и ID созданного опроса:

8. Используем ID опроса для его вывода на страницу

Для того, чтобы вывести опрос на странице, в нужном месте вставьте следующий код:

Вместо ID_опроса нужно подставить числовой идентификатор опроса, который вы хотите вывести на экран.

Примечание: данный код будет работать в том случае, если страница с опросом находится на том же уровне, что и сам опрос.

Если страница с опросом находится вне папки с опросом, то нужно указать полный путь до файла ajax.js и также поменять пути на полные в самом файле ajax.js.

9. И еще напоследок один момент

Если вы хотите, чтобы опрос появлялся плавно и после голосования результаты появлялись с эффектом, то можно сделать так:

— кладем в папку js библиотеку jquery (в доп. материалах она уже находится там);
— в файле с опросом подключаем эту библиотеку наряду с файлом ajax.js;
— теперь в файле ajax.js в функции handleResponse мы можем закомментировать или удалить строку:

и вместо нее написать, например, так:

Так мы сначала мгновенно скрываем блок с опросом, а затем заставляем его медленно появиться за полторы секунды. Вместо hide и fadeIn вы можете использовать другие функции jQuery аналогичного назначения.

Все. На этом установку скрипта опроса можно считать завершенной. Теперь в вашем распоряжении скрипт, который позволяет создавать, редактировать и удалять опросы, изменять их внешний вид и смотреть статистику из админки.

При желании вы можете его немного доработать под свои нужды, модифицировав файлы скрипта.

Если краткий обзор вам не до конца понятен, то изучите полную версию урока в видеоформате на этой странице выше.

Удачи вам и успехов!

P.S. Присмотритесь к премиум-урокам по различным аспектам сайтостроения, включая PHP, JavaScript, jQuery и Ajax, а также к бесплатному курсу по созданию своей CMS-системы на PHP с нуля. Все это поможет вам быстрее и проще освоить практические навыки веб-программирования:

Понравился материал и хотите отблагодарить?
Просто поделитесь с друзьями и коллегами!

Как создать PHP-скрипт для загрузки файлов с помощью jQuery и AJAX

В этой статье я покажу, как добавить на сайт функционал для загрузки файлов с помощью jQuery, AJAX и MySQL.

Базовые настройки

Теперь займемся написанием скрипта для загрузки файлов.

СозданиеPHP-скрипта загрузки файлов

  • Создайте HTML-форму загрузки на основе Bootstrap.
  • Создайте Ajax-скрипты для загрузки файлов.
  • Примените проверку безопасности.
  • Создайте PHP-скрипты для обработки данных.


Создание HTML-формы

HTML-форма — это интерфейс, через который пользователь передает данные серверу. Чтобы форма работала с файлами, нужно установить для элемента

Примеры отправки AJAX JQuery

AJAX позволяет отправить и получить данные без перезагрузки страницы. Например, делать проверку форм, подгружать контент и т.д. А функции JQuery значительно упрощают работу.

Полное описание функции AJAX на jquery.com.

GET запрос

Запрос идет на index.php с параметром « text » и значением « Текст » через метод GET.
По сути это то же самое что перейти в браузере по адресу – http://site.com/index.php?text=Текст

В результате запроса index.php вернет строку «Данные приняты – Текст», которая будет выведена в сообщении alert.

Код можно сократить используя функцию $.get

Код файла index.php

GET запросы могут кэшироваться браузером или сервером, чтобы этого избежать нужно добавить в функцию параметр – cache: false .

POST запросы

Или сокращенная версия – функция $.post

Код файла index.php

POST запросы ни когда не кэшироваться.

Отправка формы через AJAX

При отправке формы применяется функция serialize() , подробнее на jquery.com.

Она обходит форму и собирает названия и заполненные пользователем значения полей и возвращает в виде массива – .

Простые примеры работы jQuery, Ajax и PHP

1. Создаём простой AJAX запрос в jQuery

Пример всего из двух файлов.

Код HTML (index.html)

Код PHP (файл example.php)

Смотрим как работает!)

2. Действия в процессе ожидания jQuery — Ajax

Сначала коротко о методах.

Метод ajaxSend() выполняет переданный в него код во время отправления AJAX запроса.
Метод ajaxComplete выполняет переданный в него код после завершения выполнения AJAX запроса (при этом неважно произошла ошибка или нет).
Метод ajaxSuccess выполняет переданный в него код, если выполнение AJAX запроса завершается успешно.
Метод ajaxError выполняет переданный в него код, если выполнение AJAX запроса завершается с ошибкой.

С помощью данного кода можно установить, например, анимированное изображение (часы, круг, линия и тд), которое будет отображаться в процессе загрузки и закрываться в случае конца процедуры.

3. Пример отправки данных из формы и полей ввода jQuery + Ajax + PHP

Код HTML (index.html)

Код PHP (файл example.php)

Смотрим пример работы!

Поскольку это практически готовая форма обратной связи, то вот ссылка того, как отсылать письма на php.

Ещё буду дополнять примерами! Если есть пожелания, пишите в комментариях!

Php или Ajax с JS?

Можно ли php заменить на : JS(jquery) и AJAX

Для использования серверной составной, хотя бы основных задач
Отправка уведомлений мне на email на действия пользователя и тд

Или php не заменить на JS(Jquery)

Или все же для действующего сайта(по больше, по функциональней)
надо на нем задействовать html,CSS,JS,Ajax и PHP

Что знать это все надо, я понимаю
Но пока запутался

Или нужен ли ajax если есть PHP

Тогда надо получается html,CSS,JS, и PHP

  • Вопрос задан более трёх лет назад
  • 2526 просмотров

То что вы называете AJAX это всего-лишь XmlHTTPRequest, API Javascript-а которое позволяет вам делать HTTP запросы непосредственно из JS кода. И все. Никакой магии.

Когда вы переходите в браузере на какую-то страницу, например index.php, создается HTTP запрос. Далее запрос идет на сервер где его ловит апач или nginx или еще кто. Тот смотрит что мы хотим получить результат работы скрипта index.php и просит PHP запустить скрипт для такого-то запроса. PHP любезно парсит запрос, раскидывает все по масичвикам $_SERVER/$_GET/$_POST и т.д. и запускает этот самый index.php.


Далее ваш скрипт выдает ответ, то есть это какие-то заголовки (например если вы делаете редирект вы выставляете заголовок Location) и тело (все что вы выводите через echo). Этот ответ уходит клиенту и он видит радостно страничку.

Что нам дал XmlHttpRequest? Он дал нам возможность делать эти самые HTTP запросы по своей прихоти а не только когда пользователь снизайдет отправить форму или перейти по ссылке. Можно хоть в цикле бесконечном сервак опрашивать на предмет наличия новых данных (если очень упрощать то приемрно так работает скажем уведомления во вконтактике).

Подытожим: Нет, вы не можете заменить серверную часть на технологию, которая реализует общение с этим самым сервером. Это просто дополнительная возможность предоставляемая вам Javascript-ом. Как ею воспользоваться решать вам.

Простой пример использования PHP и AJAX.

В эпоху современного веба, большинство сайтов становятся все более интерактивными. Если ранее для получения обновленных данных нам нужно было обновить полностью страницу, то сейчас появились технологии которые позволяют полностью страницу не загружать, а только лишь отдельную ее часть. В свою очередь это предоставляет удобство как пользователям так и владельцам серверов, ведь для пользователя загрузка страницы будет быстрее, так как загружается только отдельная часть страницы, а серверу не нужно каждый раз генерировать страницу и отдавать ее пользователю. Эти возможности просто реализовать при помощи php и ajax.

Сегодня мы разберем небольшой пример для лучшего понимания работы концепции AJAX. Иногда новичкам бывает трудно понять каким же образом взаимодействует между собой php и ajax, много людей ищут примеры того как валидировать формы на лету без перезагрузки всей страницы. Я вам вкратце покажу как это делается, для того, чтобы вы могли понять основы и принципы которые позволят вам в будущем более быстро освоить другие инструменты и писать свои собственные скрипты.

Придумаем небольшое задание себе, будем проверять наличие email адреса в базе данных без перезагрузки страницы используя php и ajax. Такой пример хорошо продемонстрирует как мы можем взаимодействовать с сервером без перезагрузки страницы в браузере, а также, это часто используется при различного рода валидациях пользовательских форм. В корневом каталоге создадим 3 файла с именами index.php , email.php , validate.js .

Создание страницы

Создадим простую страницу с одной формой, которая содержит только одно поле для ввода email.
Синтаксис файла index.php

Самый простой способ работать с AJAX — это подключить фреймворк jQuery, что собственно я и сделал. jQuery предоставляет нам простой в понимании и работе синтаксис для отправки AJAX запросов, почему бы не использовать это преимущество?

Создание js скрипта

Синтаксис файла validate.js

Обработчик на php

Этот скрипт будет получать POST запрос от клиента, обрабатывать его и возвращать результат. AJAX считывает результат и на его основе принимает решение.
Синтаксис файла email.php

В нашем php скрипте, самый обычный код, который обрабатывает post запрос и печатает на странице определенный текст. В результате AJAX отправляет запрос php скрипту, скрипт его обрабатывает и выдает результат, AJAX считывает результат и изменяет страницу в реальном времени.

AJAX передает POST запрос скрипту посредством этого участка кода:

type — Тип запроса, POST или GET. В нашем случае POST;
url — адрес скрипта которому отправляют запрос;
data — данные которые передаются в запросе;
success — что делать в результате успешного выполнения запроса. В нашем случае вызывается функция;

Илон Маск рекомендует:  Case средства uniface

В самом скрипте, проверка наличия email в базе выполняется при каждом вводе символа в поле email. В скрипте за обработку ввода отвечает участок $(‘#email’).keyup(function()<>); , который проверяет нажатие клавиши в поле с .
Как видите, код довольно простой и не требует особо больших навыков для понимания, все завязано на обработке событий keyup() — нажатие клавиши , click() — клик мышкой по элементу . Далее следует AJAX запрос и ответ от скрипта. Таким образом используя php и ajax можно можно получить практически безграничные возможности для создания интерактивных страниц.
Данный код не претендует на звание высококачественного, но если развить, добавить правильных валидаций на уровне клиента и сервера, ввести css, то вполне можно использовать в своих проектах.
Если у вас возникли вопросы, не стесняйтесь, пишите комментарии.
Желаю вам хорошего дня и до скорых встреч ��
Файлы примеров.

Использование jQuery и PHP для создания Web-страниц на базе Ajax

Библиотеки jQuery упрощают PHP-разработчику решение трудоемких задач

Большинство РНР-разработчиков осваивали этот язык по старинке, начав с определения и построения простых РНР-страниц и их соединения с простыми же таблицами MySQL. В дальнейшем, приобретая разнообразный опыт, они учились создавать на РНР все более сложную функциональность, объединять таблицы в MySQL и решать другие сложные задачи.

По ходу дела программист приобретает опыт работы и со стороны клиента. В какой-то мере он осваивает XHTML или CSS, а быть может, и программирование на JavaScript. В зависимости от вида проектов ему даже может представиться случай поработать с Ajax для придания своим Web-приложениям функциональности в духе Web 2.0. Однако у меня первый опыт работы с Ajax оказался довольно утомительным — приходилось вручную создавать функции и с трудом продираться сквозь процесс создания Ajax-страниц.

Часто используемые аббревиатуры
  • CSS: Cascading Style Sheet
  • HTML: Hypertext Markup Language
  • XHTML: Extensible Hypertext Markup Language
  • XML: Extensible Markup Language

Для некоторых Ajax до сих пор остается тайной за семью печатями. У них не находится времени, терпения или знаний, чтобы как следует овладеть им. Жаль, потому что многим клиентам нравится функциональность в стиле Ajax, которая упрощает работу с Web-приложениями. Прочитав эту статью, вы узнаете достаточно, чтобы стать настоящим профи по Ajax.

Мы покажем, как использовать библиотеку jQuery, чтобы легко добавлять функциональность Ajax в любое РНР-приложение. Мы создадим простое Web-приложение с применением РНР и MySQL — телефонную книгу с именами и номерами телефона. В ней будет все необходимое — средства поиска по именам или номерам телефона, таблица MySQL и т.п. Затем мы добавим jQuery, чтобы можно было искать по именам и номерам телефона в режиме реального времени, в процессе набора текста. Решив эту задачу, вы не только будете хорошо знать основы jQuery, но и разберетесь в некоторых фундаментальных понятиях Ajax.

Что такое Ajax?

Лучший способ описать Ajax — это сравнить его с тем, что вам уже знакомо. Большинство Web-страниц и приложений работает в синхронном режиме. Вы нажимаете на ссылку или кнопку Submit поисковой формы, и запрос передается на сервер, который обрабатывает его и возвращает ответ. Эту модель правильнее всего назвать так: «нажал, подождал, увидел». Этот бесконечный цикл обновления-повторения всем хорошо известен. Иными словами, чтобы отображать на странице постоянно обновляемую информацию, нужно либо ввести какой-то механизм автоматического обновления, либо предложить пользователю нажимать на ссылку.

С Ajax все не так. Первая A в слове Ajax означает асинхронный. Ajax позволяет создавать страницы на любом языке программирования, а затем наполнять разные части этих страниц информацией из базы данных или любого другого централизованного процесса на сервере. Например, у вас есть сайт электронной коммерции, где демонстрируются продаваемые продукты. На странице каждого продукта есть обычные элементы: заголовки, описание товара, фотография, количество товара на складе.

Предположим, нужно держать посетителей в курсе того, сколько единиц товара осталось на складе. Можно добавить функцию Ajax, которая будет запускать отдельную РНР-страницу с запросом MySQL, а затем передавать эту информацию на первоначальную страницу без каких-либо действий со стороны пользователя и без всякой синхронной последовательности событий типа нажал-подождал-увидел.

Буква j в слове Ajax означает JavaScript, и это объясняет источник такого поведения. В нем и достоинство данного подхода, и его недостаток. Достоинство потому, что весь код работает на стороне клиента, так что он легко переносится и не влияет на сервер. А недостаток для многих РНР-разработчиков состоит в том, что это другая, непривычная для них среда. Здесь-то и выходят на сцену инструменты, подобные jQuery: они значительно упрощают взаимодействие с Ajax, ускоряя процесс разработки.

А как насчет двух последних букв в названии: а и x? Они означают and XML, хотя XML-часть на самом деле используется не всегда. Многие Ajax-приложения хорошо работают и без XML-кода: они передают просто HTML или даже неформатированный текст. Возможно, точнее было бы расшифровывать x как XMLHttpRequest , так как этот объект используется для извлечения данных в фоновом режиме, то есть без помех для отображения или поведения существующей страницы.

Что такое jQuery?

jQuery— это компактная библиотека JavaScript, созданная Джоном Резигом (John Resig) и опубликованная в интернете в начале 2006 года. Это бесплатное и открытое ПО, распространяемое по двум лицензиям: Массачусетского технологического института (MIT) и GNU General Public License. Она привлекла множество разработчиков во всем мире своей простотой и наглядностью.

Секрет ее популярности в том, что эта простая в применении библиотека упрощает JavaScript для всех (даже для самых закоренелых back-end программистов), позволяя без изнурительной работы добиваться замечательных эффектов. С ее помощью можно создавать наборы элементов Document Object Model (DOM), модифицировать и манипулировать CSS, вводить элементы анимации и работать с Ajax. Вся эта функциональность обеспечивается единственным файлом JavaScript, который можно загрузить с сайта jQuery (см. Ресурсы).

Загрузив jQuery, можно добавить его к любому файлу HTML или РНР, включив простой тег

Допустим, перед вами стоит довольно простая, но нудная задача с большим количеством ручных операций типа добавления двоеточия ( : ) в конце каждой метки формы на сайте. Можно идти напролом, отыскивая каждую метку формы и добавляя в конце строки двоеточие, а можно использовать следующий код jQuery:

Листинг 1. Добавление двоеточий с использованием jQuery

Это простая функция: она дожидается, пока страница будет полностью подготовлена и загружена (для этого служит часть $(document).ready() ), выполняет анонимную функцию, отыскивающую все элементы DOM label , а затем в конце найденного текста добавляет двоеточие. Функция $() позволяет обращаться к элементам DOM по их естественным именам, что делает этот интерфейс идеальным выбором для разработчиков, уже знакомых с DOM.

Конечно, с помощью jQuery можно делать много других вещей, но это хороший первый шаг. Простая встроенная функция jQuery будет работать в любом случае, так как она дожидается окончания загрузки страницы. Другая строка кода вносит изменения во все найденные элементы DOM label , и все это происходит со стороны клиента, без необходимости тупо перебирать всю сделанную разметку и вносить в нее изменения.

Создание простого приложения: телефонная книга

Теперь, когда основы jQuery прояснились, давайте построим простую телефонную книгу на базе РНР и MySQL. Это приложение состоит из трех частей:

  • таблицы MySQL с именами и номерами телефона
  • файла index.php с формой поиска
  • страницы find.php, которая обращается к таблице базы данных.


Создадим каждый элемент отдельно.

Создание таблицы базы данных

Создание таблицы базы данных в MySQL — пожалуй, самая простая часть. Эта таблица должна содержать самый минимум информации — идентификатор (ключ таблицы), поле имени и поле номера телефона. Два последних поля алфавитно-цифровые, так что можно использовать функцию varchar() . Поле идентификатора создадим как autoincrement primary key . Назовем эту таблицу directory, и для ее создания воспользуемся следующим кодом Structured Query Language (SQL):

Листинг 2. Код SQL для создания таблицы directory

Как видите, ничего сложного нет. Позднее это приложение можно будет изменить по своему усмотрению. Например, можно добавить поле ключевых слов или адреса, что еще больше облегчит поиск. Пока же будем работать с тем, что есть.

Теперь надо заполнить нашу таблицу. Для ввода имен и номеров можно воспользоваться утилитой phpMyAdmin или командной строкой. Можно также использовать следующую последовательность команд SQL:

Листинг 3. Команды SQL для заполнения таблицы

Когда значения введены, проверьте, что список выводится, напечатав select * в командной строке из рабочего каталога или нажав Browse в phpMyAdmin.

Создание файла index.php

Далее, создадим простую домашнюю страницу для нашего приложения. Это файл РНР с именем index.php, но пока он содержит главным образом код HTML. Когда мы создадим файл find.php (на следующем шаге), мы вернемся к этой части и завершим ее.

Пока все, что нам нужно, это базовый HTML-файл с формой. Каждый элемент формы содержит уникальный идентификатор, так как нам нужна возможность определять каждый элемент при помощи jQuery.

Листинг 4. Файл HTML с формой

Сразу бросаются в глаза две вещи. Во-первых, с формой не связано никаких действий. Это нормально: помните, что данная форма не должна следовать традиционной синхронной схеме «нажал, подождал, увидел». Вместо этого мы добавляем функциональность, которая будет следить за действиями пользователя в поле search_term .

Второе, что вы должны заметить, это элемент DOM search_results — пустой элемент прямо под формой. В нем будут содержаться результаты поиска. Однако прежде чем идти дальше, создадим страницу find.php.

Создание файла find.php

Файл find.php — это место, где собственно и происходит все действие. Он соединяет приложение с базой данных и выполняет запрос к таблице.

В первой части файла find.php находится информация о соединении. Для нашего примера я ввел эту информацию прямо в файл. У большинства из вас она будет содержаться во включенном или запрашиваемом файле или в составе гораздо более крупной среды.

Листинг 5. Создание файла find.php

Из формы index.php будет поступать поисковый термин. Прежде чем вводить это значение в базу данных, над ним нужно произвести некоторую простую обработку. Я использую функции strip_tags() и substr() для удаления из поискового термина всех тегов HTML и сокращения его размера. Такая обработка никогда не помешает — нельзя целиком доверять тому, что вводит пользователь.

При очистке поискового термина выполним один дополнительный шаг в виде процедуры mysql_escape_string() , которая удалит все прочие глюки (такие как одинарные знаки кавычек), которые могут поставить базу данных в тупик.

Теперь составим оператор SQL. Мы хотим извлекать из таблицы любые имена и номера телефона, соответствующие поисковому термину. Последний должен сравниваться методом LIKE как с полем имени, так и с полем номера телефона, после чего выполняется запрос mysql_query() .

Листинг 6. Создание оператора SQL

Результаты запроса можно распечатать. Инициализируем переменную $string , чтобы сохранить результаты, затем используем mysql_num_rows() для проверки наличия в ответе любых строк. Если результаты для поискового термина не получены, $string будет содержать значение «No matches!» Если они есть, будет распечатано каждое имя и номер телефона из множества результатов. В конце процесса вся строка выводится на экран командой echo :

Листинг 7. Распечатка строки командной echo

Конечно, эта РНР-функциональность и сама по себе чрезвычайно полезна, но пока этого не видно. Нужно как-то ввести в этот сценарий сам поисковый термин. Мы сделаем это в следующем разделе.

Добавление jQuery в index.php

Пока все, что у нас есть, это пара безобидных страниц РНР и простая таблица MySQL. С добавлением jQuery это кроткое приложение превратится в современную программу на базе Ajax, которая работает подобно настольному приложению поиска вроде Spotlight в Mac OS X или Google Desktop Search.

Илон Маск рекомендует:  Что такое код zip_entry_read

Откроем файл index.php и добавим вызов свежезагруженного файла jquery.js.

Затем создадим простую функцию, которая предотвратит типичное поведение поисковой формы. (Для этого используется функция preventDefault() .) Все нажатия кнопки Submit и события key-up (то есть события, которые происходят при нажатии клавиш на клавиатуре) будут переадресовываться к новой функции ajax_search() , которую мы сейчас создадим.

Листинг 8. Создание функции для предотвращения типичного поведения поисковой формы

Теперь, когда все элементы системы на месте, можно ввести запрос и посмотреть, как механизм поиска работает в режиме реального времени, извлекая записи при каждом событии нажатия клавиши. Он работает и при нажатии кнопки Submit. Например, на рисунке 1 в поле поиска введена буква a , и приложение возвратило записи Жанны и Сары Смит, в именах которых содержится эта буква.

Рисунок 1. Ajax-поиск в действии

Заключение

Конечно, над этим приложением можно поработать еще. Например, добавить поле ключевых слов и позволить поиск по ключевым словам. Или сделать так, чтобы каждая запись содержала теги или ключевые слова, связанные с разными областями деятельности. Можно добавить также ресурсный поиск, чтобы искать людей, которые могли бы помочь в тех или иных проектах. Наконец, можно добавить поля email, даты рождения и чего угодно еще, а затем расширить параметры поиска.

Реализация пошаговой работы PHP-скрипта с помощью AJAX

Искал более-менее простое и универсальное средство для организации пошаговой работы скрипта, но так ничего и не нашел. Даже вопрос в QA задал, везде только общие фразы. Поэтому решил сам сделать такой инструмент.

Для чего это вообще нужно?

Бывает необходимо обработать скриптом какой-то очень уж большой файл, например, для импорта. Естественно, время работы скрипта увеличивается пропорционально размеру файла или количеству строк в нем.

Хотелось бы разбить обработку файла на несколько частей и запускать скрипт в работу уже по частям.

Принцип реализации давно известен — обмен данными между сервером и клиентом:
Клиент запускает скрипт, тот выполняет несколько итераций и возвращает клиенту номер строки, на которой он остановился. После этого клиент делает новый запрос, в котором передает скрипту этот номер и скрипт продолжает работу дальше.

Собственно сам код

Для работы нам понадобятся:

Для оформления css взял несколько правил из Bootstrap.

Что в итоге

В поле url мы указываем, например, ссылку на файл, который нужно обработать, и запускаем скрипт. Появляется прогресс-бар, а мы сидим и ждем, когда он доползет до 100 %, чтобы увидеть результат работы.

При работе с этим решением:

  • Мы можем установить количество обрабатываемых строк за одну итерацию (в самом скрипте);
  • Пользователю показывается настоящий прогресс-бар, а не бесконечная «крутилка» — если прогресс-бар стоит на середине, значит обработана половина файла;
  • Пользователь может остановить выполнение скрипта. В этом случае offset записывается в cookies на 10 мин, чтобы он мог продолжить работу скрипта с того же места.
  • Если пользователь обновит страницу, ему будет предложено продолжить работу скрипта с места остановки или начать заново (так же благодаря cookies).


Если у сообщества есть примеры реализации подобного функционала или вообще готовые решения для пошаговой работы со скриптами, буду благодарен ссылкам в комментариях.

UPD. Решение, адаптированное для MODX здесь.

Читают сейчас

Похожие публикации

  • 4 июня 2010 в 12:47

Мастер-классы по javascript, AJAX/COMET, jQuery в Киеве и Москве

JavaScript, AJAX, Socket и Flash/ActionScript — исследуем вопрос передачи данных в AJAX-приложениях

JS-PHP MVC интерфейс — cобираем всё вместе

Вакансии

AdBlock похитил этот баннер, но баннеры не зубы — отрастут

Комментарии 11

Demo. Google Chrome. Версия 22.0.1229.79 m

Request URL:http://bfmn.ru/scriptoffset/scriptoffset.php
Request Method:POST
Status Code:200 OK

Пустой ответ и нет реакции.

В поле ввода надо что-то написать, я в него вставляю путь к файлу, который надо обрабоать.

Исправил демо, по умолчанию стоит /import/import.xml

«Хотелось бы разбить обработку файла на несколько частей и запускать скрипт в работу уже по частям.» — зачем? Только для прогрессбара и возможности остановить? Вам в ответах написали пару неплохих решений которые выполнят те же задачи, но при этом будут значительно быстрее, легче по ресурсам и пр. Или речь о хостинге который не позволяет ставить время выполнения и убивать процесс (хотя последнее можно и обойти)?

Не смотрел кода, но если я правильно понял по описанию, каждый запрос это новый новый запуск скрипта, обработанные строки пропускаются, т.е. скрипт должен пропустить в файле миллион строк чтобы сотню обработать?

1. Зачем два последних шага? Причём сначала сервер сообщает что обработал 50 записей и это ни что иное как 98% работы, а затем ещё раз 50 записей, но это уже 100%.

2. Отличаются форматы offset. Во всех ответах это integer, а в самом последнем это строка.

Код не читал, но пахнет он не очень хорошо.

3. В вашем скрипте ограничение на количество строк, которое он обрабатывает за 1 раз. Но это не очень удобно для больших объёмов информации. Если вы хотите сделать импорт быстрее, то должны выполнить минимум запросов к серверу, а в каждом запросе обработать максимум строк. Очень часто не известно каким является этот максимум. По этому, нужно делать ограничение по времени. Например, скрипт работает в течении 1 минуты и обрабатывает столько строк сколько успеет. Или пусть он работает max_execution_time / 2.

Комментарии на PHP, Ajax, mySQL

Представляю вашему вниманию скрипт комментарием на PHP с использованием Ajax, jQuery (отправка комментариев без перезагрузки страницы), для хранение комментариев используется база данных mySQL. Данный скрипт подойдет для большинства сайтов работающих на самописном движке или на любом другом: Joomla, WordPress и т.д.

Возможности скрипта:

  • Отправка комментарием без перезагрузки страницы, Ajax, jQuery
  • Встроенный WISIWIG редактор TinyMCE, с поддержкой смайликов QIP
  • Бесконечное число вложенных-комментариев (ответов)
  • Администрирование комментариев)
  • Простоя установка за 5 минут
  • Использование в качестве аватаров пользователей Gravatar (www.Gravatar.com)
  • Скрипт полностью бесплатный. (Но при этом желательно на любой странице своего сайта выразить свое спасибо в виде ссылки на автора www.rche.ru)

Установка скрипта

1. Создайте таблицы в БД импортировав в неё install.sql (лежит в архиве со скриптом)
2. Настройте подключение к БД в файле config.php
3. Вставьте на страницу где будут выводится комментарии, в самое её начало: (Внимание! иклуд должен быть в самом начале кода страницу, перед ним не должно ничего выводиться в браузер, это важно)

4. Вставьте в то место страницы где требуется выводить комментарии, следуюущий код:

Для администрирования коммантариев добавте в URL адрес, переменнуй pass=12345 (пароль задается в config.php)
Примеры:

Настройки

На самом деле настроек очень много, скрипт можно подключить к сайту таким образом, что скрипт будет определять зарегестирован ли пользователь на сайте и его авторизацию, при этом комментировать можно будет без ввода имени и эл. почты. Данные будут браться из БД (из пользовательской таблицы движка).

Но в данном топике эту возможность я описывать не будут т.к. подключение к каждому движку будет иметь свои особенности.

Базовые настройки производятся в файле config.php

Обратите внимания на строку

По умолчанию включены аватарки от gravatar.com, для их отключения установите значение данной настройки в false.

Купить English версию: 99 руб.

Укажите в комментарии к платежу, ваш емаил, на него придет ссылка на скачивание скрипта!

Надеюсь данный скрипт комментариев пригодиться вам и будет служить верой и правдой. По всем вопросам прошу отписываться в комментариях.

UPD1: Для работы с кодировкой Windows-1251, нужно открыть файлы class.comments.php, js/rcheComment.js в Notepad++ и сохранить их с кодировкой Windows-1251. Затем в файл comments.c.php, после 291 строчки(на момент скачивания вами скрипта эта строка может измениться — доработки и прочее, сами понимаете:)), в общем вставляем после
function saveComments() < $name = trim(strip_tags($_POST['nameComment'])); $email = trim($_POST['emailComment']); $text = PHP_slashes(htmlspecialchars(markhtml(trim(rawurldecode($_POST['textComment'])))));
), вставить этот код:

В файле class.dbsql.php в строке 129 заменить UTF8 на cp1251

А также таблицам в БД (`rche_comments`, `rche_users`) и их полям присвоить кодировку cp1251_general_ci

UPD2: Реализована система антиспам, антибот и капча с выводом изображения с проверочным кодом. Теперь кол-во спама будет сильно ограничено.

UPD3:
1. Если у вас не работает капча проверьте наличие PHP модуля GD. картинка капчи генерируется средствами PHP.
2. Если не работает UPD1(кодировка win1251) возможно модуль PHP — iconv не подключен, также проверьте.

Проверяем наличие PHP модулей командой phpinfo();

UPD4:
Отпишусь сразу всем, в последней сборке от 08.11.2012 исправлены следующие баги:
— отображение картинки капчи при ответе на комментарий
— ошибка при проверке капчи на ответ

Для самостоятельного устранения багов:
в файле /class.comments.php строка 131, измените строку на (подставив в ID букву R)
Было

Расшифровка возможных ошибок:
ERR1: Ошибка: Имя должно состоять более чем из 3 символов
ERR2: Ошибка: E-Mail указан неверно
ERR3: Ошибка: Отсутствует текст комментария
ERR4: Ошибка: Не удается установить тип комментария. Попробуйте позже
ERR5: Ошибка: Не верно указан проверочный код с картинки.

Проблемы с работой в кодировке Windows-1251:
При работе скрипта в данной кодировке не всегда правильно распознается введенный текст скриптом JavaScript, это может проявляться в некоторых браузерах. Желательно использовать кодировка UTF-8

Отправка данных POST в PHP-скрипт — jQuery, AJAX и PHP

Я, кажется, борюсь с отправкой данных POST в свой PHP-скрипт.

Мой AJAX отправляет данные (идентификатор сообщения в блоге) на мой PHP-скрипт, который затем находит строку, содержащую соответствующий ID из базы данных.

Затем скрипт отправляет обратно заголовок сообщения в блоге и содержимое сообщения в массиве, который AJAX берет и вставляет в форму в DOM.

  • вставьте пример данных (например, если я просто храню строки в массиве, я возвращаюсь обратно в AJAX, он успешно вставляет эти строки в форму); а также
  • вставьте правильные данные из базы данных, если указан статический идентификатор (например, если я отключу $ _POST [‘editpost > Поэтому, с моей точки зрения, проблема в том, что идентификатор никогда не достигает скрипта PHP, или мой скрипт не может видеть идентификатор внутри объекта JSON.

Пожалуйста, взгляните на мой код и сообщите мне, что вы думаете. Я новичок во всем этом, поэтому я буду благодарен за ваши отзывы — если он исправляет проблему или нет.

Обновление — Решение:

Сценарий PHP остается прежним.

Большое спасибо за вашу помощь! MrPupper

Просмотрев свой код, кажется, что вы получаете нуль, потому что вы дважды запрашиваете скрипт fetchpost.php . Однажды, когда вы связываетесь с скриптом через $.ajax(. ); и еще раз, когда вы вызываете $.getJSON(. ); , Когда вы связываетесь через $.getJSON(. ); , однако вы не используете POST IN, и кажется, что ваш скрипт не имеет надлежащим образом определенного способа обработки запросов GET , поэтому скрипт не знает, как реагировать, и он возвращает нулевую информацию.

Я бы изменил JavaScript/jQuery на следующее:

Кроме того, PHP ожидает, что значение application/x-www-form-urlencoded сможет взаимодействовать с $_POST[. ] . Таким образом, если вы хотите прокормить его JSON, то на вашем PHP вам нужно будет реализовать такое решение, как: $postedData = json_decode(file_get_contents(‘php://input’)); (Подробнее об этом в этом ответе см. Подробнее о json_decode , см. Официальную документацию PHP для json_decode.)

Примечание. Несмотря на то, что вы не знакомы с этим вопросом, и вам это уже известно, я считаю важным указать, что ваш MySQL небезопасен и уязвим для SQL-инъекции из-за того, что он просто слепо доверяет тому, что postId не был подделан. Вы должны дезинформировать его, указав $post >real_escape_string($postid); после того, как вы инициализируете $dbconnect и подключаетесь к базе данных, но перед тем, как поместить $postid в строку запроса SQL.

Понравилась статья? Поделиться с друзьями:
Кодинг, CSS и SQL