Systém komentářů pomocí jQuery a Ajax.

 2012-10-27 00:00:00
 Dmitry Burobin

Dnes vytvoříme systém komentářů s automatickou kontrolou vstupních dat pomocí technologie Ajax a přidáváním nového komentáře s použitím jQuery bez znovunačtení stránky.

Série článků:
1) Systém komentářů pomocí jQuery a Ajax.
2) Lajkování neboli karma u komentářů.
3) Strankování.

Vytvoření tabulky a připojení k databázi.

Vytvoříme si tabulku comments, do které budeme ukládat: identifikátor komentáře ( id ), identifikátor rodičovského komentáře ( parent_id ), jméno ( name ), text komentáře ( text ) a datum přidání komentáře ( date ).

CREATE TABLE `comments` (
`id` INT ( 5 ) NOT NULL AUTO_INCREMENT,
`parent_id` INT ( 5 ) NOT NULL,
`name` VARCHAR ( 255 ) NOT NULL,
`komentar` TEXT,
`date` DATETIME,
PRIMARY KEY(`id`)
)ENGINE = MYISAM CHARACTER SET utf8 COLLATE utf8_general_ci

Taktéž si vytvořte soubor db.php, pro připojení k databázi.
<?php
$DBSERVER 'localhost'//server, který bude použít pro navázáníspojení s DB 
$DBUSER 'root'//Váš mysql login, nejspíš je stejný jako u mě pro localhost, tudiž root 
$DBPASS '****'//heslo, které jste zadaval při instalaci MySQL 

$DB 'test'//databáze, s kterou budeme pracovat 

//navazení spojení pomoci mysql_connect  
$link mysql_connect($DBSERVER$DBUSER$DBPASS)  or die("Could not connect: " mysql_error()); 
//vybírame databázi 
mysql_select_db($DB$link) or die ('Can\'t use test : ' mysql_error()); 
//řekněme MySQL, že všechná data jsou ve formatu UTF-8 
mysql_query("SET NAMES UTF8");
?>

index.php

Hlavní stránka bude obsahovat formulář pro přidávání komentářů s polem pro jméno, zprávu a skryté pole, do kterého budeme ukálát identifikátor rodičovského komentáře, pokud někdo bude odpovídat na nějaký komenář. Soubor index.php vypadá takto:

<?php
/*Soubor pro vybírání komentářů z databáze*/
require_once 'comment.php';
?>
<!DOCTYPE html>
<
html xmlns="http://www.w3.org/1999/xhtml" xml:lang="cs" lang="cs">

<
head>
    <
title>Systém komentářů.</title>
    <
meta charset="utf-8" >
    
    <
link rel="stylesheet" href="style.css"> <!-- soubor se styly -->
    <
script src="jquery-1.7.1.min.js"></script> <!-- připojení jquery -->
    <script src="comment.js"></script> <!-- funkce potřebné pro přidávání komentářů -->
    
</head>
<body>
<ul id="commentWrapper">
<?php
/*Zde v proměnné $comments jsou komentáře*/
echo $comments;
?>
<!-- formulář pro přidávání komentářů -->
</
ul>    
    <
div id="commentBox">
        <
input class="validate" type="text" name="name" >
        <
input id="parent" type="hidden" name="parent_id" value="">
        <
div class="commentText">
            <
textarea name="text"></textarea>
        </
div>
        <
button>Přidat</button><img class="loader" src="loader.gif">
    </
div>
</
body>
</
html>

Styly a knihovna jQuery

Pro správné fungování potřebujeme připojit knihovnu jQuery. Tu buď stáhnete z oficiálního webu nebo z archivu s tímto článkem. Pak, aby komentáře líp vypadali přidáme styly, nic složitého v nich není, proto je nebudu popisovat:

body
{
    
margin:0;
    
padding:0;
}
ulli
{
    list-
style-type:none;
}
.
loader
{
    
display:none;
}
#commentBox
{
    
width:400px;
    
padding:10px;
}
#commentBox input
{
    
width:250px;
    
height:25px;
    
padding0 5px;
    
margin:5px;
    
bordersolid 1px #ccc;
    
background:#f1f1f1 url(bg_input.png) no-repeat;
    
font400 12pt/14pt Ume Gothic O5;
}
#commentBox textarea
{
    
width:250px;
    
height:100px;
    
margin5px;
    
padding5px;
    
bordersolid 1px #ccc;
    
background:#f1f1f1 url(bg_koment.png) no-repeat;
    
font400 12pt/14pt Ume Gothic O5;
}
#commentBox button
{
    
height:30px;
    
width:85px;
    
margin-left183px;
    
margin-top:0px;
    
font:700 12pt/14pt Ume Gothic O5;
}
#commentWrap
{
    
width:350px;
    
padding:10px;
    
padding-bottom:3px;
    
margin:10px;
    
border1px solid #ccc;
    
border-radius:10px;
    
background:#f7f7f7;
}
#commentWrap .komentar
{
    
padding:5px;
    
padding-left:0px;
    
border-top:1px solid #ccc;
    
margin-bottom:10px;
    
font:400 12pt/14pt Times New Roman;
}
#commentWrap .replay
{
    
margin-left:270px;
    
font:700 10pt/12pt Ume Gothic O5;
}
#commentWrap a
{
    
text-decoration:none;
}
#commentWrap .commentName
{
    
font:700 10pt/12pt Ume Gothic O5;
}
#commentWrap .commentDate
{
    
font:400 11pt/13pt Times New Roman;
}
.
repName
{
    
font:400 12pt/14pt Times New Roman;
    
font-style:italic;
}
.
repText
{
    
font:700 10pt/12pt Ume Gothic O5;
}
.
repDate
{
    
font:400 9pt/11pt Times New Roman;
    
font-style:italic;
}

comment.php

Tento soubor je určen pro vybírání dat z databáze a vkládání těchto dat do šablony.

<?php
// Vložíme soubor s připojením k databázi. ( musí se nacházet ve stejné složce ) 
require_once 'db.php';

// Vybereme komentáře z databáze
$query mysql_query("
         SELECT `id`,`parent_id`,`name`,`komentar`, 
         DATE_FORMAT(date, '%d %M %Y %H:%i') as date_add
         FROM `comments` ORDER BY `id` ASC 
         "
);
         
// Pokud při vykonání příkazu nastané chyba vypišeme ji
if(!$query) { echo mysql_error() . " - " mysql_errno(); }
else {

// Jinak pomocí cyklusu projdeme všechny záznamy v tabulce
        
while($result mysql_fetch_assoc($query))
        {
            
// a uložíme je do pole $data  
            
$data[$result['id']] = $result;
        }

// Funkce pro vkládání dat ( komentářů ) do šablony
function commentsToTemplate($comment)
{
// $comment - pole komentáře - id, parent_id, name, text, date 
    
// Zapneme bufferování výstupu, aby šablona nebyla zobrazená v místě volání funkce
    
ob_start();  
      
// Připojíme šablonu comment_template.php, do které vložíme data z pole $comment
    
require_once 'comment_template.php';                     
  
// Získáváme obsah bufferu jako řetězec   
    
$comments_string =  ob_get_contents(); 

// Vymažeme všechno z bufferu
    
ob_end_clean();

// Vrácíme komentář jako řetězec   
    
return $comments_string;    
}

// Funkce pro zpracování pole $data, které
// bude rozděleno do jednotlivých komentářů a odesláno funkci 
// commentsToTemplate
function commentsString($data)
{
    foreach(
$data as $w
    {
        
$string .= commentsToTemplate($w);
    }
 
return 
$string
}  

// proměnná $comments obsahuje naše komentáře, které zobrazujeme na hlavní stránce
$comments commentsString($data);

// vynulujeme proměnnou $data 
$data null;
}
?>

comment_template.php

Toto je vlastně šablona jednotlivého komentáře.

<?php
// Do této šablony se načítají data z pole $data, která jsou odesláná funkci commentsToTemplate
echo '<li id="comment'.$comment['id'].'">
    <div id="commentWrap">'
;
        
// Pokud existuje parent_id, pak zobrazíme, že se jedna o odpověď
        
if($comment['parent_id']!=0)
        {
// Vybereme z DB jméno a datum rodičovského komentáře
            
$q mysql_query("SELECT `name`, DATE_FORMAT(date, '%d %M %Y %H:%i') as date_add FROM `comments_my` WHERE `id`='".$comment['parent_id']."'");
            
$r mysql_fetch_assoc($q);
            echo 
'<span class="repText">Odpověď na komentář</span> <span class="repName">
            '
.$r['name'].'
            </span> <span class="repText">from</span> <span class="repDate">
            '
.$r['date_add'].'
            </span><br>'
;
        }
        
// Zobrazíme jméno a datum přidání
echo    '<span class="commentName">'.$comment['name'].'</span> - <span class="commentDate">'.$comment['date_add'].'</span>
        <div class="komentar">
<!--Zobrazíme text komentáře-->
            '
.$comment['komentar'].'
        </div>
<!--Pokud zmačkneme na tento odkaz, pak se do skrýteho pole s názvem parent_id přidá
identifikátor tohoto komentáře. 
Použil jsem zde JS událost onClick, tzn. pokud je tlačítko zmačknuté, pak najdi prvek s 
id parent ( což je skrýte pole parent_id ) a do hodnoty přidej id komentáře, na který chcete odpovědět-->
        <a class="replay" href="javascript:;"
        onClick="document.getElementById(\'parent\').value='
.$comment['id'].';">Odpovědět</a>
    </div>
</li>'
;
?>

comment.js

Tento soubor je určen pro odesílaní dat na server a přidávání do databáze

$(document).ready(function(){
    
// Objekt commentBox bude obsahovat data pro odesílání na server
    
var commentBox = {};
    
// Po kliknutí na tlačítko přidat      
     
$('#commentBox button').live('click',function(){
         
// Do objektu commentBox bude přidána hodnota skrýteho pole input s názvem parent_id,
// které obsahuje id rodičovského komentáře a pokud je prázdné tak bude 0, což znamená, že
// se jedná o nový komentář bez reakci na něj ( toto se bude ověřovat až odešleme data na server ).   
        
commentBox.parent_id = $('#commentBox').find("input[name='parent_id']").val();
        
// Taktéž přidáme do objektu commentBox hodnotu pole name a zprávu
        
commentBox.name = $('#commentBox').find("input[name='name']").val();        
        
commentBox.text = $('#commentBox').find("textarea").val();
// Abyste to lépe pochopili syntaxe toho, jak přidáváme hodnoty do objektu je:
// Objekt.název_proměnné = hledáme input nebo textarea.hodnota pole

// Funkce pro odesílání dat na server        
        
sendData();
     });
    

function 
sendData()
{
// Najdeme tlačítko schováme jej a zobrazíme loader ( ten si můžete stáhnout z archivu )
    
$('#commentBox').find('button').hide().next().show();

// Odešleme    data metodou post na server
    
$.post(
// Soubor, ve kterém se provádí ověřování dat a přidávání komentářů     
        
"addkoment.php",
// Objekt s proměnnými (parent_id, name a text)
        
commentBox,
        function(
data){
// Pokud jsou nějaka data, to znamená, že nastala chyba
            
if(data)
            {
// Převedeme tento řetězec JSON do objektu JS
                
data = $.parseJSON(data);
                
// Vytvoříme proměnnou errors, která bude obsahovat název chyby
                
var errors '';

// Použijeme cyklus pro zobrazení všech chyb najednou.
// Použil jsem tuto konstrukci, protože nejprvé jsem zobrazoval všechny chyby, ale
// nakonec jsem to změnil a teď se bude zobrazovat jenom jedna konkretní chyba     
// Kdybyste chtěli zobrazit všechny chyby tak použijte konstrukci
// errors += val+'\n'; - každá chyba se zobrazí na samostatném řádku.
// i - obsahuje název chybného pole a val - popis chyby
            
                
$.each(data, function(ival)
                {
                    
errors += i;
                });

// Uložil jsem do proměnné errors jenom název chybného pole a
// cyklusem switch procházim všechny varianty a přidávam červený rámeček 
// pokud pole je prázdné nebo jestli komentář nebyl přidan tak zobrazim hlášení                    
                   
switch (errors
                   {
                      case 
'name':
                        $(
'#commentBox').find("input[name='name']").css('border','2px solid red');
                        break
                      case 
'text':
                        $(
'#commentBox').find("textarea").css('border','2px solid red');
                        break
                      case 
'not_add':
                        
alert('Komentář nebyl přidan.')
                        break
                      default:
                        
alert('Něco je špatně')
                  }

// Najdeme loader ( ten si můžete stáhnout z archivu ) schováme jej a zobrazíme tlačítko přidat     
                
$('#commentBox').find('button').show().next().hide();

// Jinak, pokud žadná chyba nenastala, tak voláme funkci addComment, která zobrazí
// komentář bez znovunačtení stránky a vynuluje hodnoty vstupních poli
            
} else {
                
addComment();        
            }
        }
    
    )

}


function 
addComment()
{
// Na konec prvků s id commentWrapper ( což je ul ) přidame tag <li></li>,
// ve kterém se bude nacházet nový komentář
    
$("#commentWrapper").append('<li></li>');

// Najdeme poslední tag <li>, který jsme teď vytvořili a
// načteme do něj poslední komentář
    
$("#commentWrapper li:last").load('new_comment.php');
// Najdeme loader ( ten si můžete stáhnout z archivu ) schováme jej a zobrazíme tlačítko přidat     
    
$('#commentBox').find('button').show().next().hide();

// Vynulujeme hodnoty vstupních poli
    
$('#commentBox input').val('');
    $(
'#commentBox textarea').val('');

}


});

addkoment.php

Tento skript zpracovává data poslána na server pro zpracování.

<?php
// Ověříme, zda se jedna o odeslána POST data nebo si člověk jen tak otevřel tuto stránku
if($_SERVER['HTTP_X_REQUESTED_WITH'] == 'XMLHttpRequest') {

// Pokud ano, pomocí funkci sleep přidame efekt zpoždění, abyste 
// viděl loader, jinak, protože pracujeme na lokálním serveru
// se ten loader hned schová  
     
sleep(2);

// Ověříme vstupní data     
// Pokud je pole name nebo textové pole prázdné do pole $error uložíme text chyby
// ukončíme skript a odešleme tuto chybu v JSON formátu  
     
if(!isset($_POST['name']) OR empty($_POST['name']))
     {
        
$error['name'] = "Zadejte jméno.";
        exit(
json_encode($error));
     } else {
        
$name htmlspecialchars(stripslashes(trim($_POST['name'])));
     }
     
     if(!isset(
$_POST['text']) OR empty($_POST['text']))
     {
        
$error['text'] = "Zadejte zprávu.";
        exit(
json_encode($error));
     } else {
        
$text stripslashes(htmlspecialchars(trim($_POST['text'])));
     }
     
// V tomto případě, když parent_id je prázdné pole tak mu přiřadime hodnotu 0
// to znamená, že se jedná o nový komentář, který není odpovědí na něčí jiný  
     
if(!isset($_POST['parent_id']) OR empty($_POST['parent_id']))
     {
        
$parent_id 0;
     } else {
        
$parent_id stripslashes(htmlspecialchars(trim($_POST['parent_id'])));
     }
     
// Vložíme soubor s připojením k databázi. ( musí se nacházet ve stejné složce )  
     
require_once 'db.php';
     
// Přidame komentář do databáze a vrátíme false, tzn.
// že chyba nenastala a komentář byl přidán.
     
$q mysql_query("
     INSERT INTO `comments`(`parent_id`,`name`,`komentar`,`date`)
     VALUES('"
.$parent_id."','".$name."','".$text."', NOW())
     "
);
     if(!
$q) { $error['not_add'] = "Komentář nebyl přidan."; exit(json_encode($error));}
     else { exit(
false); }

}
?>

new_comment.php

V tomto souboru vybírame poslední komentář, abysme ho následně zobrazili po úspěšnem ověření vstupních dat.

<?php
// Vložíme soubor s připojením k databázi. ( musí se nacházet ve stejné složce ) 
require_once 'db.php';
// Vybereme maximální ( poslední přidáný ) id
$max mysql_query("SELECT MAX(`id`) FROM `comments_my`");
// Pak vybereme všechny související údaje s tímto identifikátorem
$query mysql_query("
         SELECT `parent_id`,`name`,`komentar`, 
         DATE_FORMAT(date, '%d %M %Y %H:%i') as date_add
         FROM `comments_my` WHERE `id` = '"
.mysql_result($max,0)."'
         "
);
$comment mysql_fetch_assoc($query);

// A stejně, jak jsme zobrazovali komentáře před tím, zobrazíme poslední přidáný
echo '<li id="comment'.mysql_result($max,0).'">
    <div id="commentWrap">'
;
        
        if(
$comment['parent_id']!=0)
        {
            
$q mysql_query("SELECT `name`, DATE_FORMAT(date, '%d %M %Y %H:%i') as date_add FROM `comments_my` WHERE `id`='".$comment['parent_id']."'");
            
$r mysql_fetch_assoc($q);
            echo 
'<span class="repText">Odpověď na komentář</span> <span class="repName">
            '
.$r['name'].'
            </span> <span class="repText">from</span> <span class="repDate">
            '
.$r['date_add'].'
            </span><br>'
;
        }
        
echo    
'<span class="commentName">'.$comment['name'].'</span> - <span class="commentDate">'.$comment['date_add'].'</span>
        <div class="komentar">
            '
.$comment['komentar'].'
        </div>
        <a class="replay" href="javascript:;"
        onClick="document.getElementById(\'parent\').value='
.mysql_result($max,0).';">Odpovědět</a>
    </div>
</li>'
;
?>

Závěr

Probrali jsme, jak můžeme zpracovávát formuláře bez znovunačtení stránky. Doufám, že se Vám tento článek líbil a byl pro Vás přínosný.

Systém Orphus
Napište komentář.
Celkem komenrářů(10303)
MichaelLet - 2017-05-19  10:28:07
 Average Weight Loss From Topamax
LouisTheks - 2017-05-19  10:11:13
 Привет всем участникам форума! Класный у вас сайт
Нашел прикольные сервера кс 1.6 на этом сайте: http://cs-servers-monitoring.ru/ :
[b] сервера кс 1 6 бхоп [/b] http://cs-servers-monitoring.ru/game/cs
[url=http://cs-servers-monitoring.ru/game/csgo] раскрутка сервера кс го [/url]
[b] скачать зомби сервер css [/b] http://cs-servers-monitoring.ru/game/source
И тут нашёл много интересных новостей про игры и сервера:
http://cs-servers-monitoring.ru/news/5543-mishel-ansel-poobeschal-delitsya-skrinshotami-iz-wild.html
[url=http://cs-servers-monitoring.ru/news/4798-dzhimmi-demon-xo-mne-kazhetsya,-chto-menya-izgnali-iz-severoamerikanskogo-regiona.html] Джимми «DeMoN» Хо: «Мне кажется, что меня изгнали из североамериканского региона» [/url]
[b] Peacemaker занял позицию тренера в Team Liquid [/b] http://cs-servers-monitoring.ru/news/2954-peacemaker-zanyal-poziciyu-trenera-v-team-liquid.html
RandyReono - 2017-05-19  07:01:15
 Whbkocgwh wcebhyalk
Кошелёк WANLIMA женский http://www.1prikid.ru/koshelek-wanlima-zhenskii-6717
[url=http://www.1prikid.ru/barsetka-versace-muzhskaia-klatch-50702]http://www.1prikid.ru/barsetka-versace-muzhskaia-klatch-50702[/url]
[url=http://www.1prikid.ru/koshelek-zilli-muzhskoi-4329]http://www.1prikid.ru/koshelek-zilli-muzhskoi-4329[/url]
[url=http://www.1prikid.ru/koshelek-zhenskii-chanel-5543]http://www.1prikid.ru/koshelek-zhenskii-chanel-5543[/url]
Косметичка женская http://www.1prikid.ru/kosmetichka-zhenskaia-7697
http://www.1prikid.ru/portfel-01987 Портфель
Гдз По Математике Дидактические Материалы Мерзляк 9 Класс - 2017-05-19  04:48:02
 Сегодня домашнее задание занимает у школьников много времени, к тому же, далеко не всё, что учитель объяснил на уроке удаётся усвоить качественно и прочно. Если ученик будет добросовестно выполнять вникать в авторское решение и его подробное описание, то пресловутая домашка станет занимать меньше времени и казаться более интересной.

Родители могут облегчённо вздохнуть: готовое домашнее задание во многом заменит услуги репетитора, а это сэкономит немало денег на оплату занятий с педагогами. Тщательно разработанное пособие Гдз По Математике Дидактические Материалы Мерзляк 9 Класс станет великолепной подсказкой для школьников, которые понимают важность знаний, полученных в школе и значение результатов экзаменов.

http://xn-----9--5veadtkobut4aerhc9au4dakd.xn--p1ai/гдз-по-дидактическому-материалу-9-клас-5/
WilliamNuh - 2017-05-19  02:02:06
 What is to evaluate when writing an essay|
Zamudious - 2017-05-18  18:17:56
 [url=http://www.allconet.org/usafriendly/] how to buy viagra in the us[/url]
Rodrigk3g - 2017-05-18  17:31:11
 Czesc dziewczata umowa pozyczki druk, [url=http://exspeskassa24.pl/4353_s-poyczka-alior.php]pozyczka alior[/url] i Umowa Pozyczki Druk
Sailipcok - 2017-05-18  17:13:30
 http://undeclaiming.xyz norsk kasino [url=http://undeclaiming.xyz]norsk kasino[/url]
Отзывы и цены на виагру Dof - 2017-05-18  12:32:07
 Чтобы кого ученые отыскивают виагру, Отзывы и цены на виагру http://edonline.erectilemantablet.ru Быть диагностике данного заболевания важную роль играет характер травмы. Следовательно, может быть ради вас уже приходилось брать Виагру в аптеке либо вы только намереваетесь приобрести Сиалис в Воронеже либо приобрести Левитру, в любом случае, круг вынужден продолжаться обоснованным и естественно же нельзя брезгать чтением аннотации накануне применением Виагры, Левитры и Сиалиса. Для обеспечения активного отдыха опосля мышечной работы используются различные средства. Вследствие специфичности собственной работы и для фоне нервных расстройств у меня нередко теряется эрекция в самый неуместный момент. Различные заболевания сердца, в книга числе нестабильная стенокардия, аритмия в небезопасной форме и сердечная недостаточность.
Рефлекторно происходит спазм этих артерий и раздражение болевых рецепторов в них. Коли вас повсевременно разве с нередкой периодичностью мучают сердечные боли, вы мучаетесь сердечными болезнями, то предварительно применением Левитры, в неотклонимом порядке пройдите консультацию у собственного лечащего врача. Произведение эректильная дисфункция online
стоимость в аптеках. Силденафил как на век наращивает приток крови к половому члену. Кроме больше вы сэкономите, приобретая аналоги.
Впоследствии их внедрения может заболевать головная болезнь скока стоит приобрести дапоксетин противопоказания побочные эффекты
головокружение боли в суставах диарея тошнота уменьшение остроты зрения Приобрести левитру приобрести левитру в одессе одессе, повышающие потенцию. Быть наличии пульса имеет смысл рисковать его разбудить. Примерный набор из растворимых почти языком пилюль - Дженерик Виагра Софт и Дженерик Сиалис Софт, различающихся наиболее скорым актом и возможностью потребления алкоголя дешифрировать время приёма. В итоге содействует нормализации и гармонии сексапильных отношений, который слишком принципиально ради хоть какого мужчины и естественно женщины.
http://kopaylas.com/member.php?action=profile&uid=20856
http://kouraresidence.com/index.php/component/users/?option=com_k2&view=itemlist&task=user&id=46837
http://aolira.com/public/member/1182
http://lifestyleonkloof.co.za/index.php?option=com_k2&view=itemlist&task=user&id=318669
http://www.reyhaane.com/index.php?option=com_k2&view=itemlist&task=user&id=4861
AutomkrOvate - 2017-05-18  10:36:56
 Создаем ботов на заказ.
Помогаем создавать комбинированные системы, автоматизируя тем самым обновление ассортимента, и количества товаров/статей/фильмов на вашем сайте/аккаунте в соц. сети.
Стоимость от 70$

Вступайте в группу в ВК https://vk.com/avtomatizator_web_processov
MichaelLet - 2017-05-18  07:44:42
 Buy Pills Online Lowest Price|
ArthurJef - 2017-05-18  04:50:20
 Shake the salt tradition. Sodium, a component of salt, causes fluid retention. And fluid retention raises blood pressure, which aggravates CHF Reducing your salt intake may help alleviate fluid retention as well as the ankle swelling that accompanies it.

While FOX may be crying in their beer much more than a Rays-Phillies World Series - jeeze folks, you can't have an innovative new York or Boston or Los Angeles in the fall Classic in today's market - numerous don't ground.

Schools. Mark Aguirre starred at Chicago's Westinghouse High and attended DePaul Or perhaps. Charlie Bradley starred at Tampa's Robinson High and attended the Prominent South Florida (USF). DePaul, a private, Catholic university with 25,000 students, was independent until it joined Conference USA, in 1995, then joining the powerful Big East Conference in 2005. USF, a public university with 46,000 students, was a participant of the sun Belt Conference, later also joining large East Conference in 2003.

Empty seats notwithstanding, television ratings show another side of success or failures of franchise companies. The first ten years the "Devil" Rays were nothing create home about although lastly two seasons have shown promise your new thing. In 2008 they exploded, to be able to NFL standards but terrific nonetheless.

"Stanford researchers have discovered that low doses of nicotine, a major component of cigarette smoke, appear market new circulatory growth" - which is certainly beneficial for folks who have just suffered heart disease or heart.

While had been still some uncertainty regarding the locations for all of this Saturday's women's rugby matches, the following information about these four games was available to your Rugby Examiner at time of publication.

Pitcher Nick Adenhart, just 22, died following surgery after his sports card was hit by a minivan who ran a red light in weight. Two others were killed and these guys in a healthcare facility.

However, Charlie Crist received an endorsement from former U.S. Representative Robert Wexler, a Democrat, where his South Florida district holds a huge Jewish voting block. Liquids Mason-Dixon pollster stated the lead for the U.S. Senate race could change with a drop of 15% for Rubio in support of either Crist or Meek. This wherever Democratic voters go from Meek to Crist or vice versa. Perhaps ad units constituents of Wexler a few will take their votes and give it to Crist.
[url=https://www.google.com/maps/d/viewer?mid=1x7vEdoGZeJvIOFsoAVM3ODixO7w&hl=en_US&ll=26.037971000000024%2C-80.17818799999998&z=17]andrew smoley[/url]
andrew smoley
Victorpat - 2017-05-18  00:48:35
 Привет! Класный у вас сайт!
Нашёл прикольный сериальчик:
[url=http://www.misfits.su/serial-online/] сериал misfits смотреть онлайн [/url]
[b] сериал отбросы все сезоны смотреть онлайн [/b] http://www.misfits.su/serial-online/
[b] сериал отбросы сезон 1 [/b] http://www.misfits.su/otbrosi-misfits-season-1/
И тут:
[b] сериал misfits все серии [url="http://www.misfits.su/"]http://www.misfits.su/[/url]
Ещё тут много интересного:
http://www.misfits.su/otbrosi-photo-galleries/album-for-download/misfits-serial-photo-dwnlds-544-1314.html
[url=http://www.misfits.su/otbrosi-photo-galleries/album-for-download/misfitsphoto46-3438.html] Галерея - misfits_photo_46 - Фотоальбом для загрузок [/url]
http://www.misfits.su/otbrosi-photo-galleries/album-for-download/otbrosi454-4029.html [b] Галерея - Otbrosi_4_54 - Фотоальбом для загрузок [/b]
http://www.misfits.su/otbrosi-photo-galleries/album-for-download/misfitsserialphotos152-2733.html [b] Галерея - Misfitsserialphotos_152 - Фотоальбом для загрузок [/b]
Cialis-retail-price - 2017-05-17  23:35:42
 [url=http://usa-safe-store.com/#who-needs-viagra]sildenafil doses[/url] natural viagra reviews [url=http://best-store-usa.com/#is-viagra-available-in-generic-form]clinic for erectile dysfunction[/url] whats viagra [url=http://safe-store-us.com/#viagra-ireland]online pharmacy usa[/url] roosevelt university pharmacy [url=http://us-safe-store.com/#cheapest-cialis-20mg]tadalafil bph[/url] viagra forums uk
MichaelLet - 2017-05-17  21:18:55
 Prescription drug retail price registry|
RichardAgive - 2017-05-17  21:08:29
 [url=http://prelest.xyz/]Красивые комнатные растения и домашние цветы[/url]
Красивые комнатные растения и домашние цветы
http://prelest.xyz/

как бороться с клещом на комнатных растениях комнатные растения мята форум цветоводов комнатных растений условия роста комнатных растений энергия комнатных растений расположение комнатных растений шарики комнатных растений светолюбивые комнатные растения фото

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

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

http://prelest.xyz/komnatn_ye-rasteni_ya/kak-borot_ps_ya-s-kleshhom-na-komnatn_yh-rasteni_yah.html
http://prelest.xyz/komnatn_ye-rasteni_ya/komnatn_ye-rasteni_ya-m_yata.html
http://prelest.xyz/komnatn_ye-rasteni_ya/forum-cvetovodov-komnatn_yh-rastenij.html
http://prelest.xyz/komnatn_ye-rasteni_ya/uslovi_ya-rosta-komnatn_yh-rastenij.html
http://prelest.xyz/komnatn_ye-rasteni_ya/_energi_ya-komnatn_yh-rastenij.html

домашняя орхидея засохли цветоносы уход проращивание орхидей семян в домашних условиях пересадка орхидеи в домашних условиях после цветения удобрения орхидей фаленопсис домашних условиях как поливать орхидею дендробиум домашних условиях пересадка орхидеи фаленопсис домашних ухаживать за домашней орхидеей после покупки рассадить орхидею домашних орхидеи дендробиум уход домашних условиях размножение размножение орхидей черенками в домашних

[url=http://prelest.xyz/orhide_ya-domashn_ya_ya/domashn_ya_ya-orhide_ya-zasohli-cvetonos_y-uhod.html]домашняя орхидея засохли цветоносы уход[/url]
[url=http://prelest.xyz/orhide_ya-domashn_ya_ya/gibrid_y-orhidei-brassi_ya-uhod-v-domashnih-uslovi_yah.html]гибриды орхидеи брассия уход в домашних условиях[/url]
[url=http://prelest.xyz/orhide_ya-domashn_ya_ya/prorashhivanie-orhidej-sem_yan-v-domashnih-uslovi_yah.html]проращивание орхидей семян в домашних условиях[/url]
[url=http://prelest.xyz/orhide_ya-domashn_ya_ya/peresadka-orhidei-v-domashnih-uslovi_yah-posle-cveteni_ya.html]пересадка орхидеи в домашних условиях после цветения[/url]
[url=http://prelest.xyz/orhide_ya-domashn_ya_ya/udobreni_ya-orhidej-falenopsis-domashnih-uslovi_yah.html]удобрения орхидей фаленопсис домашних условиях[/url]
Viagra without a doctors prescription - 2017-05-17  18:24:07
 best hair loss treatment for men drug addiction clinics
http://viagrawithoutadoctorsprescription.shop
viagra without a doctors prescription
viagra without a doctor's prescription
treatments for drug abuse asthma topics
[url=http://www.viagrawithoutadoctorsprescription.shop]viagra without a doctor prescription[/url]
guidelines for asthma most painful arthritis
Oscidadayday - 2017-05-17  17:59:18
 Всем салют, посетители сайта!
Обратите внимание на презанятный вебресурс: http://stkmagistral.ru - оборудование для конюшни. Кроме этого строительство конюшни. И наконец конноспортивные поля.
Задача интернет проекта [url=http://stkmagistral.ru] оборудование для конюшни. Далее строительство конюшни. И напоследок строительство футбольных полей.[/url].
Кажется прикольно.
Желаю всем счастья, народ сетевой.
Борис
Freddieopink - 2017-05-17  17:54:24
 Представляем вам личного помощника!
Мы собрали в одном месте все самые полезные и интересные сайты, чтобы вы могли без проблем выбрать именно то, что нужно именно вам.
Jamesded - 2017-05-17  10:11:28
 Race http://studentessay.info r eacutesum eacutes send in
<<[1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17] [18] [19] [20] [21] [22] [23] [24] [25] [26] [27] [28] [29] [30] [31] [32] [33] [34] [35] [36] [37] [38] [39] [40] [41] [42] [43] [44] [45] [46] [47] [48] [49] [50] [51] [52] [53] [54] [55] [56] [57] [58] [59] [60] [61] [62] [63] [64] [65] [66] [67] [68] [69] [70] [71] [72] [73] [74] [75] [76] [77] [78] [79] [80] [81] [82] [83] [84] [85] [86] [87] [88] [89] [90] [91] [92] [93] [94] [95] [96] [97] [98] [99] [100] [101] [102] [103] [104] [105] [106] [107] [108] [109] [110] [111] [112] [113] [114] [115] [116] [117] [118] [119] [120] [121] [122] [123] [124] [125] [126] [127] [128] [129] [130] [131] [132] [133] [134] [135] [136] [137] [138] [139] [140] [141] [142] [143] [144] [145] [146] [147] [148] [149] [150] [151] [152] [153] [154] [155] [156] [157] [158] [159] [160] [161] [162] [163] [164] [165] [166] [167] [168] [169] [170] [171] [172] [173] [174] [175] [176] [177] [178] [179] [180] [181] [182] [183] [184] [185] [186] [187] [188] [189] [190] [191] [192] [193] [194] [195] [196] [197] [198] [199] [200] [201] [202] [203] [204] [205] [206] [207] [208] [209] [210] [211] [212] [213] [214] [215] [216] [217] [218] [219] [220] [221] [222] [223] [224] [225] [226] [227] [228] [229] [230] [231] [232] [233] [234] [235] [236] [237] [238] [239] [240] [241] [242] [243] [244] [245] [246] [247] [248] [249] [250] [251] [252] [253] [254] [255] [256] [257] [258] [259] [260] [261] [262] [263] [264] [265] [266] [267] [268] [269] [270] [271] [272] [273] [274] [275] [276] [277] [278] [279] [280] [281] [282] [283] [284] [285] [286] [287] [288] [289] [290] [291] [292] [293] [294] [295] [296] [297] [298] [299] [300] [301] [302] [303] [304] [305] [306] [307] [308] [309] [310] [311] [312] [313] [314] [315] [316] [317] [318] [319] [320] [321] [322] [323] [324] [325] [326] [327] [328] [329] [330] [331] [332] [333] [334] [335] [336] [337] [338] [339] [340] [341] [342] [343] [344] [345] [346] [347] [348] [349] [350] [351] [352] [353] [354] [355] [356] [357] [358] [359] [360] [361] [362] [363] [364] [365] [366] [367] [368] [369] [370] [371] [372] [373] [374] [375] [376] [377] [378] [379] [380] [381] [382] [383] [384] [385] [386] [387] [388] [389] [390] [391] [392] [393] [394] [395] [396] [397] [398] [399] [400] [401] [402] [403] [404] [405] [406] [407] [408] [409] [410] [411] [412] [413] [414] [415] [416] [417] [418] [419] [420] [421] [422] [423] [424] [425] [426] [427] [428] [429] [430] [431] [432] [433] [434] [435] [436] [437] [438] [439] [440] [441] [442] [443] [444] [445] [446] [447] [448] [449] [450] [451] [452] [453] [454] [455] [456] [457] [458] [459] [460] [461] [462] [463] [464] [465] [466] [467] [468] [469] [470] [471] [472] [473] [474] [475] [476] [477] [478] [479] [480] [481] [482] [483] [484] [485] [486] [487] [488] [489] [490] [491] [492] [493] [494] [495] [496] [497] [498] [499] [500] [501] [502] [503] [504] [505] [506] [507] [508] [509] [510] [511] [512] [513] [514] [515] [516] >>
*v komentářich nesmíte používat sprostá slova a odkazy!!!Děkuji za pochopeni.