Използване на Jquery и Ajax

swlight

Registered
Здравейте.Може ли някой да ме упъти как точно се прави това на снимката.Знам,че е с jquery и ajax,но не знам точно как става.Както е дадено в самата картинка,използваш скилове(магий един вид),с които атакуваш противника,като динамично се заключват/отключват другите като натиснеш един и динамично спада кръвта на противника.

http://store.picbg.net/pubpic/F7/8E/f436d3d0408bf78e.png
 
Ако дадеш линк мога да ти кажа със сигурност как се случват нещата.
Иначе лично предположение:
1. Изпраща се AJAX request към PHP
2. PHP скрипта изпълнява съответното действие, записва промените в БД и връща данните, които трябва да се променят в страницата, но като json
3. При success на AJAX request-a получения json се подава към функция, която променя съдържанието на страницата
 
Благодаря ти!Попринцип това е сайта http://hellzombie.com/home.php
Моля да не се приема като реклама.
Ако не е много нахално може ли да дадеш един малък пример за да разбера по-добре? до сега не съм използвал json

Благодаря ти!
 
Както си и мислех, изпраща се AJAX request (в случая POST) към ajax.php, където се извършват действията. Самите POST променливи се посочват във втория аргумент на функцията в JSON формат (пр: { "deistvie": "ataka", "patroni": 2 } ). От там вече знаеш как да действаш. В крайна сметка трябва да събереш всички необходими данни, които ще се обновяват в 1 масив, като за ключ ползваш ID-то на HTML елемента, в който се намират данните. Пример:
$danni = Array (
"#Jivot" => 80,
"#Patroni" => 48
);

и т.н. всички стойности, които ти трябват.
Накрая echo(json_encode($danni));
това ще върне масива в json формат, който функцията .post получава като променливата data. Подаваш тази променлива като аргумент на success функцията (3тия аргумент). След това обхождаш масива с функцията .each и за всеки елемент променяш съдържанието на полето с ID - ключа на стойността на елемента. Всичко това изглежда така:

[js]$.post('ajax.php',
{ "deistvie": "ataka", "patroni": 2 },
function (data) {
var decoded = $.parseJSON(data);
jQuery.each(decoded, function (field, val) {
$(field).html(val)
}
}
);[/js]

При изпълнението функцията ще промени съответните полета, например:
<span id="Jivot">100</span> ще стане <span id="Jivot">80</span>
<span id="Patroni">50</span> ще стане <span id="Patroni">48</span>

Надявам се, че схвана идеята. Успех ;)
 
Добре го обясни,нямаше как да не схвана! Благодаря ти много за отговора и отделеното време!

+1
 

Back
Горе