Jquery як звернутися з javascript до бази даних
Щось подібне вже є ось тут. але зараз я хочу зробити AJAX-запит коротший, з використанням саме бази MySQL, та ще й дописати вже існуючу збірку "шахової решалкі", "закривши" в ній згадані за посиланням "рядки 41 і 56".
Спочатку зовсім простий приклад, простіше якого я придумати не зможу. На локальному сервері є папка, припустимо, з ім'ям ptest. в ній - звичайний файл HTML з ім'ям index.html:
У цій же папці лежить і файл script.php. прийом даних в ньому нічим не відрізняється від випадку, коли дані були передані з форми HTML або від іншого PHP-скрипта:
Наш скрипт просто записав отримані дані в текстовий файл, відокремивши число від рядка символом табуляції \ t. А насправді script.php міг робити з даними, отриманими від клієнта, що завгодно, наприклад, писати їх в базу MySQL, як-то обробляти і т.д.
Зробимо приклад довічне, наприклад, відповімо на питання, як решалка шахових задач. написана на яваскрипт і виконується на стороні клієнта, може зберігати інформацію про рейтинги користувачів в базі даних сервера.
Нехай до "кореневого" документу HTML або скрипту PHP підключений скрипт:
Неважливо, що скрипт лежить в теці js. все одно викликати серверні php-скрипти він буде з тієї ж папки, де знаходиться "кореневої" документ, та інший підхід і загрожує проблемами. Наприклад, ajax-запити на ресурси з доменами, піддоменів і протоколами, відмінними від поточного, як правило, заборонені. Тобто, з клієнтського файлу domain.com/script.js можна звернутися до серверного anotherdomain.com/script.php. А якби було можна, будь-дятел зміг би бомбити зі свого комп'ютера будь-яку форму в інтернеті. Зрозуміло, можна написати браузер або обгортку, де кроссдоменние ajax-запити дозволені. але ж порвуть :)
Наш клієнтський puzzle.js. користуючись тим, що в ньому підключений JQuery, хоче іноді викликати серверні скрипти plus.php і minus.php - для збільшення і зменшення рейтингу юзверька в залежності від того, чи правильно той вирішує завдання:
Це знову зразок короткого виклику методу $ .ajax для відправки даних на сервер методом POST. Тут першим параметром, з ім'ям balM і balP. передається число (на скільки зменшити або збільшити рейтинг), а другим параметром, з ім'ям move. передається рядок (запис ходу).
Скрипти minus.php і plus.php будуть дуже схожі, тільки перший з них не буде повторно "мінусувати" невірні ходи користувача, у другому така перевірка не потрібна, так як він викликається тільки після рішення задачі:
У свою чергу, functions.php підключає config.php. що містить звичайні налаштування для конекту, у мене на локалхосте потрібно ось такий config.php. на реальному хості настройки доведеться змінити:
Що вийшло - можна подивитися ось тут. заодно і шахові завдання вирішити, нічого не завантажуючи.