Новичку инфо-бизнеса. От простого к сложному
 
Новичку инфо-бизнеса. От простого к сложному
Меню
Генератор форм

NEW!!! Теперь нет необходимости изучать html, javascript или php, для того, чтобы создать форму обратной связи на сайт, AJAX-форму, опрос, голосование или анкету!

Мастер создания форм

Мастер создания форм 3.0

Все нужные параметры скрипт подготовит сам - вам остается только создать проект, добавить нужные компоненты и поместить сгенерированный html-код на любую страницу Вашего сайта.

Узнать подробности >>>

Категории

.: Полезные сервисы (6)

.: HTML и CSS (6)

.: Веб-программирование (30)

.: Почтовые рассылки (7)

.: Копирайтинг (1)

.: Продвижение сайтов (10)

.: Разное (13)

.: Заработок в Интернете (10)

.: Платежные системы (5)

Популярные заметки

:: Интеркасса – новая система приема платежей на Вашем сайте

:: Форма обратной связи. Как ее создать и для чего она нужна?!

:: Выпадающие меню на HTML и CSS

:: Улучшаем обработчик формы обратной связи

:: Этапы создания собственной почтовой рассылки

Случайные заметки

:: Создание AJAX-голосовалки для статей. Начало.

:: Как уберечь Ваши сайты от беды?!

:: Улучшаем обработчик формы обратной связи

:: 10 заповедей блогера

:: 10 глупых идей онлайн-бизнеса которые принесли миллионы

Опрос

Какая тема Вам наиболее интересна: *







Результаты
Реклама

Создание AJAX-голосовалки для статей. Конец

Продолжаю тему создания «AJAX-формы голосования для статей», о которой я начал рассказывать в прошлой статье здесь!

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

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

Для этого на кнопку "Оценить" с id = "add"  вешаем обработчик click(), который при клике на нее будет запускать AJAX-запрос. Итак, выглядеть это все будет так:

$('#add').click(function()  { 
var vote = $('input[name=vote]:checked').val();
var id_post = $('input[name=id_post]').val();                          
$.ajax({
type: "POST",
url: "vote.php",
data:{id_post:id_post, vote:vote},
beforeSend: function(){
$('#status').html("<img src='img/loading.gif' width='16' height='16'>
<br /><p>Ваш запрос обрабатывается...</p>");
},
success: function(responseText){
var data = eval('(' + responseText + ')');
if (data.status == 'OK'){
$('#status').html("Ваш голос учтен!");
$('#vote_result').html(data.vote);
$('#voters_result').html(data.voters);
}
else{
$('#status').html("Ошибка!");
$('#error').html(data.error);
}

}
});          
})

Ничего нового в этом AJAX-запросе нет. Все как и в прошлой статье.

При клике на кнопку “Оценить” получаем значения оценки, которую поставил пользователь (radio button) и id статьи, для которой идет голосование.

var vote = $('input[name=vote]:checked').val();
var id_post = $('input[name=id_post]').val();

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

Перед отправкой данных на сервер выводим изображение загрузки данных и надпись «Ваш запрос обрабатывается».

$('#status').html("<img src='img/loading.gif' width='16' height='16'>
<br /><p>Ваш запрос обрабатывается...</p>");

Это необходимо делать для того, чтобы пользователь видел, что идет загрузка данных, а не подумал что страничка зависла и не ушел с Вашего сайта!

После того как данные от сервера получены их необходимо преобразовать в удобный для jQuery вид, так как с сервера данные возвращаются в json формате (json_encode). Для этих целей используется функция eval(), которая преобразует эти данные.

var data = eval('(' + responseText +  ')');

Если сервер вернул успешные данные(status==OK), обновляем результаты голосования и выводим текст «Ваш голос  учтен!», иначе выводим текст ошибки!

Все довольно таки просто!

Теперь переходим к серверной части скрипта! В прошлой статье мы с Вами создали файл vote.php, который выводил текущие оценки за статью (оценку и количество голосов).  Сегодня мы перепишем этот файл и создадим специальный класс, который будет выполнять все выше сказанные операции. Итак приступим.
Я не буду останавливаться на всех моментах создания классов, так как сейчас статья не об этом, а сразу приведу Вам готовый код этого файла, а потом подробно расскажу Вам что там и к чему! ОК?

<?php
require_once('db.php');//Подключаемся к базе


$rating = new vote($_POST['id_post'],$_POST['vote']);
isset($_POST['fetch']) ? $rating->get_ratings() : $rating->vote();

class vote {
private $id_post;
private $vote;

function __construct($pid,$vcl) {

$this->vote = $vcl;
$this->id_post = $pid;       
}

public function get_ratings() {
$result=mysql_query("SELECT * FROM vote
WHERE id_post='".(int)$this->id_post."'");
$res['status'] = "OK";
if (mysql_num_rows($result) == 1){
$myrow = mysql_fetch_assoc($result);
$res['vote'] = $myrow['vote'];
$res['voters'] = $myrow['voters'];
}
else{
$res['vote'] = 0;
$res['voters'] = 0;
}
echo json_encode($res);
}

public function vote() {
if(!empty($this->id_post) and !empty($this->vote)){
$result=mysql_query("SELECT * FROM vote
WHERE id_post='".(int)$this->id_post."'");
$res['status'] = "OK";
if (mysql_num_rows($result) == 1){
$myrow = mysql_fetch_assoc($result);
$vote_res = round(($myrow['vote'] + $this->vote)/2,1);
$voters = ++$myrow['voters'];
$res['vote'] = $vote_res;
$res['voters'] = $voters;
mysql_query("UPDATE vote SET
vote='".$vote_res."', voters='".$voters."'
WHERE id_post='".(int)$this->id_post."'");
}
else{
mysql_query("INSERT INTO vote (id_post,vote,voters)
VALUES ('".$this->id_post."','".$this->vote."','1')");

$res['vote'] = $this->vote;
$res['voters'] = 1;
}
}
else{
$res['status'] = "ERR";
$res['error'] = 'Вы не правильно передали параметры запроса!';
}
echo json_encode($res);
}

}

?>

Данный класс vote() имеет всего 2 метода - get_ratings() и vote().

Первый из них  get_ratings() предназначен лишь для того, чтобы выводить текущие результаты для заданной статьи, а второй vote() – для обработки полученных данных (голосов и оценок голосования) !

Если Вы заметили метод  get_ratings() содержит код, который мы создали с Вами в прошлой статье, поэтому на нем я останавливаться больше не буду!

Метод vote() проверяет поступили ли данные (оценка и id). Если все в порядке то делаем запрос к базе данных,  в которой хранятся результаты голосования и вытаскиваем от туда оценку за статью указанным id.

Если в базе данных нет еще записи с id-заметки, то добавляем  в нее данные о голосовании, если же есть, то происходит перерасчет и обновление данных!

Посмотреть как это работает в действии можно перейдя по этой ссылке!

Скачать исходники можно здесь!

Если Вам необходимо создавать более сложные AJAX-формы, то рекомендую посмотреть скрипт «Мастер создания форм», который за считанные секунды сгенерирует необходимую для Вас AJAX-форму!

Добавить в социальные закладки Сабмит в закладки

Опубликована: 2010-06-01   Просмотров: 416   Комментариев: 0   Рейтинг: 4.5/5
 

Оцените эту статью:

Ужасно
Плохо
Так себе
Хорошо
Отлично

Коментарии:

Добавить комментарий:

Введите Ваше имя: * Введите Ваш email: * URL Вашего сайта:
Введите Ваш комментарий: *
Введите числа с картинки
Обновить капчу


Опубликована: 2010-06-01   Просмотров: 416   Комментариев: 0   Рейтинг: 4.5/5
Подписка на рассылку
Все секреты бизнеса в Интернете у тебя на ладони
Ваше имя: *
Ваш e-mail: *

Подписка на RSS

Поиск


Комплект Реселлера

NEW!!! У тебя есть сайт, но ты не знаешь, что на нем продавать?

"Комплект Реселлера"

Самый большой сборник информационных товаров с правом перепродажи

Кликните Сюда Прямо Сейчас, Чтобы Узнать Все Подробности!

HTML-код для чайников
Хочешь изучить HTML за неделю?! Подписывайся на бесплатную рассылку "HTML-код для чайников"! Изучить HTML легко! Главное начать!

HTML-код для чайников

Ваше имя: *
Ваш e-mail: *
Моя ссылка

Если вам понравился мой сайт, я буду вам признателен, если вы разместите мою текстовую ссылку на своем сайте.
Заранее спасибо!

Код ссылки:

Рекомендую

Пошаговое ПРАКТИЧЕСКОЕ руководство о заработке на партнерках С НУЛЯ!!!


Благодаря DVD «Киберсант-Партнер»:

— Вы получите ПОСТОЯННУЮ, не зависящую от кризиса или прихотей руководства работу!

— Вы получите источник СТАБИЛЬНОГО, непрестанно увеличивающегося дохода!

— В Ваших руках окажется мощнейший из когда-либо существовавших в Интернете ИНСТРУМЕНТ для раскрутки в Сети!

— Начав буквально с нуля, Вы сможете стать ЛИДЕРОМ любой партнерской программы, какой только захотите и зарабатывать на этом ТЫСЯЧИ долларов каждый месяц!

— «Киберсант-Партнер» не только избавит Вас от страхов остаться в кризис без работы и денег, но и придаст Вам УВЕРЕННОСТИ В СЕБЕ и собственных силах на ниве интернет-заработков!

Узнать подробности >>>

Статистика

Заметок в базе: 88
Книг в базе: 29
Комментариев в базе: 218

Copyright © 2008-2010 Шамшур Иван. Все права защищены.
Разрешается републикация материалов сайта с обязательным указанием ссылки на
автора материала (указание автора, его сайта) и ссылки cледующего содержания:
"http://biznesguide.ru. Новичку Инфо-Бизнеса. От простого к сложному."