Доброго времени суток господа. В общем курил я курил маны по AJAX, не догоняю, начал с простого, это голосование, написал скрипт, пробывал его завязать на AJAX'e, не получилось, в общем просьба моя в следующем, объясните пожалуйста как оно работает на рабочем примере. Мой скрипт голосования, кратко о нем: 1. Работает с MySQL 2. Разрешен 1 голос, 1 раз в сутки с одного ip адреса. Сам скрипт: index.php PHP: <?php // Подключаемся к базе include ("sqlconnect.php"); // Получаем дату и ip $curdate = date("Y-m-d"); $ip = $_SERVER['REMOTE_ADDR']; // Проверяем текущее голосование $query = "SELECT `id`,`title` FROM `polls` WHERE `start` <= '$curdate' AND `end` >= '$curdate';"; $result = mysql_query($query) or die(mysql_error()); $question = mysql_fetch_array($result); // Если голосований нет, выводим информационное сообщение if (!$question){ echo 'На данный момент опросы не проводятся'; } // Если голосование есть else{ // Проверяем голосовал ли юзер в этом опросе $query = "SELECT * FROM `polls_votes` WHERE `ip` LIKE '$ip' AND `date` = '$curdate';"; $result = mysql_query($query) or die(mysql_error()); $checkvote = mysql_num_rows($result); // Если голосовал выводим ему результат и сообщение о том что он уже голосовал if ($checkvote > 0){ echo $question['title'].'<br>'; $query = "SELECT `id`, `option_text`, (SELECT COUNT(id) FROM `polls_votes` WHERE `option_id`=`polls_options`.`id`) AS votes FROM `polls_options` WHERE `poll_id` = '".$question['id']."';"; $result = mysql_query($query) or die(mysql_error()); while ($options = mysql_fetch_array($result)){ echo $options['option_text'].'-'.$options['votes'].'<br>'; } echo 'Вы уже голосовали в этом опросе'; } else{ // Выводим форму с возможностью проголосовать echo $question['title'].'<br>'; $query = "SELECT `id`, `option_text`, (SELECT COUNT(id) FROM `polls_votes` WHERE `option_id`=`polls_options`.`id`) AS votes FROM `polls_options` WHERE `poll_id` = '".$question['id']."';"; $result = mysql_query($query) or die(mysql_error()); echo '<form name="poll" action="vote.php" method="post">'; while ($options = mysql_fetch_array($result)){ echo $options['option_text'].'<input type="radio" name="option" value="'.$options['id'].'"</input><br>'; } echo '<input type="submit" value="Проголосовать"></form>'; } } ?> vote.php PHP: <?php // Подключаемся к базе include ("sqlconnect.php"); // Получаем дату и ip $curdate = date("Y-m-d"); $ip = $_SERVER['REMOTE_ADDR']; // Получаем option $option = (int)$_REQUEST['option']; // Если пользователь не указал вариант ответа, отсылаем ему информационное сообщение if ($option == 0){ echo 'Ошибка, вы не указали один из вариантов ответа'; } else{ // Проверяем текущее голосование $query = "SELECT `id` FROM `polls` WHERE `start` <= '$curdate' AND `end` >= '$curdate';"; $result = mysql_query($query) or die(mysql_error()); $question = mysql_fetch_array($result); // Если голосований нет, выводим информационное сообщение if (!$question){ echo 'На данный момент опросы не проводятся'; } // Если голосование есть else{ // Проверяем голосовал ли юзер в этом опросе $query = "SELECT * FROM `polls_votes` WHERE `ip` LIKE '$ip' AND `date` = '$curdate';"; $result = mysql_query($query) or die(mysql_error()); $checkvote = mysql_num_rows($result); if ($checkvote > 0){ echo 'Вы уже голосовали в этом опросе'; } // Если все ок, записываем в базу информацию else{ $query = "INSERT INTO `polls_votes` (`id`, `option_id`, `ip`, `date`) VALUES(NULL, '".$option."','$ip', '$curdate');" or die(mysql_error()); $result = mysql_query($query) or die(mysql_error()); echo 'Ваш голос учтен. Спасибо за участие в опросе.'; } } } ?> sqlconnect.php PHP: <?php // Подключаемся к базе $sql = mysql_connect("hostname", "user", "pass"); mysql_select_db("dbase"); mysql_query("SET NAMES cp1251"); ?> Дамп базы MySQL: [sql] CREATE TABLE `polls` ( `id` int(11) NOT NULL auto_increment, `title` varchar(255) default NULL, `start` date NOT NULL, `end` date NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=cp1251 ; CREATE TABLE `polls_options` ( `id` int(11) NOT NULL auto_increment, `poll_id` int(11) default NULL, `option_text` varchar(255) default NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=cp1251 ; CREATE TABLE `polls_votes` ( `id` int(11) NOT NULL auto_increment, `option_id` int(11) default NULL, `ip` varchar(255) default NULL, `date` date NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=cp1251 ; [/sql] Админки у скрипта нету пока что, для созданя опроса используйте следующий запрос: [sql] INSERT INTO `polls` VALUES (1, 'Любите ли вы AJAX ?', '2008-08-13', '2008-08-20'); INSERT INTO `polls_options` VALUES (1, 1, 'Да'); INSERT INTO `polls_options` VALUES (2, 1, 'Нет'); INSERT INTO `polls_options` VALUES (3, 1, 'А что это такое ?'); [/sql]
Я читал и знаю, как реализовать. Но тут дофига кода и у меня нет времени вставить в него AJAX, по-другому, как я понял, не получится, ибо каждую строчку объяснять не хочется.