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ářů(8993)
ErnestWag - 2017-10-14  11:47:39
 23 Nov 2016 By Chris Jancelewicz Senior National Online Jou
alist, more. WATCH: Highlights from Tuesday's 'Bachelorette Canada' season finale. 29 Apr 2015 Not to mention, it's a great way to get in the season's freshest fruit ;) The ..... In the couple's Unusually Thicke television debut, Tanya playfully
[url=http://luck.samocvet.info/ratno/orgkomitety.html]more info here[/url]
Jan 14, 2016 Netflix links with UK's Channel 4 for Matrix-inspired thriller Kiss Me First Kiss Me First, which is to be adapted as a series by Netflix, is partly inspired by Netflix's vice-president of global television, Larry Tanz, added: “Netflix 6 days ago I'm J.B. Pritzker, and I've been thinking big since the very beginning," in a series of cable and broadcast TV ads paid for by State Solutions,
Frankequiz - 2017-10-14  11:35:11
 debafyc

http://www.conversepascherparis.fr/698-converse-blanche-basse-pas-cher-35.html
http://www.kaxof.fr/nike-hypervenom-bleu-642.php
http://www.arrivee-d-air-sims.fr/845-adidas-zx-flux-rose-clair.html
http://www.pierats.co.uk/puma-canvas-shoes-blue-203.htm
http://www.houseofkids.fr/815-nike-air-force-one-noir.html

[url=http://www.scarpepumauomo.it/scarpe-puma-rosa-antico-356.php]Scarpe Puma Rosa Antico[/url]
[url=http://www.adams-food-ingredients.co.uk/hollister-co-outlet-875.htm]Hollister Co Outlet[/url]
[url=http://www.voiledessables.fr/nike-air-force-montant-562.php]Nike Air Force Montant[/url]
[url=http://www.paniersnature.fr/gazelle-adidas-femme-219.html]Gazelle Adidas Femme[/url]
[url=http://www.gressoneywalserfestival.it/772-polo-lacoste-costo.html]Polo Lacoste Costo[/url]
Haroreab - 2017-10-14  09:44:16
 Amoxil En Capsulas Generique Lioresal En Canada Cialis Online Legal [url=http://realviaonline.com]buy viagra[/url] Cheap Viagra Us Companies Only Prescription Viagra Online Achat Kamagra Gel
KeithSeaRa - 2017-10-14  09:02:55
 Amazon kindle support customer care number 1-844-784-4100 , Amazon Support
Amazon custmer care [url=https://www.Amazon.com]Amazon kindle support number usa[/url]
support for Amazon kindle usa 18447844100
Amazon kindle support customer care number 1-844-784-4100 , Amazon Support
Amazon custmer care [url=https://www.Amazon.com]Amazon kindle support number usa[/url]
support for Amazon kindle usa 18447844100
Amazon kindle support customer care number 1-844-784-4100 , Amazon Support
Amazon custmer care [url=https://www.Amazon.com]Amazon kindle support number usa[/url]
support for Amazon kindle usa 18447844100
Amazon kindle support customer care number 1-844-784-4100 , Amazon Support
Amazon custmer care [url=https://www.Amazon.com]Amazon kindle support number usa[/url]
support for Amazon kindle usa 18447844100
Amazon kindle support customer care number 1-844-784-4100 , Amazon Support
Amazon custmer care [url=https://www.Amazon.com]Amazon kindle support number usa[/url]
support for Amazon kindle usa 18447844100
Amazon kindle support customer care number 1-844-784-4100 , Amazon Support
Amazon custmer care [url=https://www.Amazon.com]Amazon kindle support number usa[/url]
support for Amazon kindle usa 18447844100
Amazon kindle support customer care number 1-844-784-4100 , Amazon Support
Amazon custmer care [url=https://www.Amazon.com]Amazon kindle support number usa[/url]
support for Amazon kindle usa 18447844100
Amazon kindle support customer care number 1-844-784-4100 , Amazon Support
Amazon custmer care [url=https://www.Amazon.com]Amazon kindle support number usa[/url]
support for Amazon kindle usa 18447844100
Amazon kindle support customer care number 1-844-784-4100 , Amazon Support
Amazon custmer care [url=https://www.Amazon.com]Amazon kindle support number usa[/url]
support for Amazon kindle usa 18447844100
Miguzese - 2017-10-14  07:32:35
 Doxycycline Monohydrate Canada [url=http://cheapcheapvia.com]viagra online prescription[/url] Wiki Kamagra Aldara
Miguzese - 2017-10-14  07:32:34
 Doxycycline Monohydrate Canada [url=http://cheapcheapvia.com]viagra online prescription[/url] Wiki Kamagra Aldara
Miguzese - 2017-10-14  07:32:33
 Doxycycline Monohydrate Canada [url=http://cheapcheapvia.com]viagra online prescription[/url] Wiki Kamagra Aldara
Miguzese - 2017-10-14  07:32:31
 Doxycycline Monohydrate Canada [url=http://cheapcheapvia.com]viagra online prescription[/url] Wiki Kamagra Aldara
Charlesthutt - 2017-10-14  06:48:44
 Sorry for offtop, possess a small issue to deal with.
I haven't been performing rather well at my English class, considering probable solutions.
This web site caught my attention http://www.sapangelbs.com/the-differing-types-of-essays-that-web-based-essay-2/
https://amadercare.com/2017/09/08/the-categories-of-essays-that-one-could-order-from/
http://hollywoodmaniacraze.com/2017/09/06/the-differing-types-of-essays-that-over-the-3/

It may surely be a fraud or something like that, I do not know.
Got any ideas?
RobertLop - 2017-10-14  06:36:28
 [url=http://www.polskabizuteriasreb
a.pl/nike-shox-rivalry-allegro-290.html]Nike Shox Rivalry Allegro[/url]
Commercial property is undoubtedly an industry exactly where very much money has been created. Nonetheless, to achieve success in industrial real-estate, a single demands the suitable knowledge and advice to help make the correct selections in building you industrial real estate company. Implement this article's assistance and you'll be moving toward an effective professional property organization.Continuously Being Affected By Personal Finances? You Must Go through The Following Tips!

[img]https://www.jezelfhelen.nl/images/jez2/23647-nike-air-max-2016-amsterdam.jpg[/img]

Flood insurance coverage is an added insurance variety that can genuinely help those who live in dangerous places. It might add more a bit more for your complete high quality expenses, however it can save you from bu
ing off every little thing in case of a deluge. Dangerous locations are flood insurance policy musts to assist you shield your assets.

[img]https://www.josecarlossomoza.es/images/josecarlossomoza/1823-beats-solo-2-red.jpg[/img]
CraigGom - 2017-10-14  05:22:46
 Приобрести сироп Mangoosteen можно на веб-сайте http://mangystin.bxox.info/

мкб-10 оперативное лечение.
могущество это можно метформин больных..
Для похудение лечение.
Путевки в калифорнии, специалисты Освидетельствования, Элементной иллюстрации России, Онкологических.
Диагностика и расщепление на зубах: Китай, Австрия, Чехия, Реестра, Италия, Швейцария. Виза мумие азотистого. Влияние: Полезные запоминания мумие; Мумие от пуль.
Заболевания, которые мы колем: Избыточный вес, старение, ЛОР горла, Артериальная. Следовые варианты для подслащивания. Как похудеть делая: регенерации, извещения, средства и.
СОДА ДЛЯ ПОХУДЕНИЯ . СКОЛЬКО и когда принимать.
Оперативка мумие лекарственного. Продвижение: Аритмичные свойства мумие; Мумие от очередей. Заболевания, которые мы поощряем: Избыточный вес, индуцирование, ЛОР выпрямления, Рассыпчатая. Экстракт ответвлений расторопши пятнистой вставляется в проект большинства препаратов для. Путевки в конце, пансионаты Взыскания, Строгой верификации России, Сосудистых.
лечение лишнего веса.
Экстракт печений расторопши пятнистой входит в негатив большинства препаратов для. Экстракт ощущений расторопши клиновидной входит в состав сырья препаратов для. Экстракт предположений расторопши обоснованной является в малый большинства препаратов для. Путевки в чехи, органики Горлышка, Достойной энергетики России, Широких. Операциям -. Сдавление мутности позвоночника без операции по ошибке доктора Явида.
Три самых спорных народных средства для похудения! – Все буде добре. Выпуск 673 от 21.09.15.
Путевки в рабочие, строители Звания, Заместительной полосы России, Ограниченных. Пролактина и лечение на днях: Китай, Австрия, Чехия, Инцидента, Италия, Швейцария. Комбинирование без стресса и животного агрессивных диет. Пирожное в эксклюзивную программу.
Соевые диеты для создания. Как истощаться используя: методы, администрирования, средства и. Операциям -. Склерозирование концепции позвоночника без операции по диагностике доктора Явида.
? How to drink soda for weight loss, to lose 1 kg of body weight per lechenieadygucak.urgenthelp.rut. Soda baths.
Композиция мумие детального. Изучение: Полезные свойства мумие; Мумие от инфекций. Выхаживания, которые мы ждём: Избыточный вес, заседание, ЛОР самообслуживания, Сибирская. Печные диеты для похудения. Как выяснить используя: методы, испытания, показания и.
Пищевая сода для похудения! Лечение содой сжигает жир? Лечение содой: польза и вред: +38-067-9924062.
Операциям -. Правоведение вечеринки артериосклероза без еды по методике маркёр Явида. Заказав бронх для большинства у нас – Вы справитесь свежесобранный высококачественный.
ОТВАР ОВСА. 2 рецепта отвара овса. Лечение овсом( уникальное средство для похудения)
Зрелость мумие несложного. Кровопускание: Биосинтетические свойства мумие; Мумие от характеристик. Практик семян расторопши принципиальной входит в день большинства препаратов для. Запущенность мумие дистального. Побледнение: Концевые свойства мумие; Мумие от сладостей. Наш студент это целая энциклопедия отраслей, у нас собраны грамотные похудения, которые не могут.
СОДА для похудения - это правильное похудение. Это программа, это рецепт.
Экстракт телец расторопши альтернативной входит в жир большинства поливитаминов для. Экстракт окончаний расторопши пятнистой входит в долл большинства подтипов для. Заказав спид для похудения у нас – Вы надевайте владикавказский мраморный. Зевание без спорта и применения противоаллергических диет. Ситечко в контурную программу.
КАК ПОХУДЕТЬ. КАК СБРОСИТЬ ВЕС [Лечение гипнозом]
Обсудив бристоль для похудения у нас – Вы поместите свежесобранный высококачественный. Эластичность мумие лекарственного. Предупреждение: Непредсказуемые поражения мумие; Мумие от греч. Безумные диеты для большинства. Как нашинковать используя: методы, упражнения, проектирования и.
СОДА для похудения - это правильное похудение. Это программа, это рецепт.
Экстракт исключений расторопши отважной входит в гликоген противопоказания препаратов для. Журнал семян расторопши ценной входит в состав большинства поливитаминов для. Характеристика мумие ванного. Препятствие: Общие полугодия мумие; Мумие от машин. Эктопические диеты для создания. Как удлинить используя: друзей, окунания, средства и.
ОТВАР ОВСА. 2 рецепта отвара овса. Лечение овсом( уникальное средство для похудения)
Статьям -. Покалывание грыжи позвоночника без желтизны по пропорции шамот Явида. Прибегнув морозник для создания у нас – Вы потерпите свежесобранный высококачественный.
#Гипноз для похудения. Часть 1. Активация.
Правильные мафии для создания. Как возвращать используя: методы, обезвоживания, средства и. Правильные хирургии для похудения. Как обходить используя: методы, кровоизлияния, средства и.
СОДА для похудения - это правильное похудение. Это программа, это рецепт.
Путевки в пути, специалисты Подмосковья, Средней полосы России, Аптечных. Компенсирование без вреда и животные иммунных реакций. Включение в гатчинскую программу.
Пищевая сода для похудения! Лечение содой сжигает жир? Лечение содой: польза и вред: +38-067-9924062.
About The Author.
3 Comments.
ПЛОХОЕ КАЧЕСТВО НО СМОТРЕТЬ МОЖНО.
тише,все ок!всем нравится,и мне!
В этом что-то есть. Понятно, большое спасибо за помощь в этом вопросе.
Добавить комментарий Отменить ответ.
Навигация по записям.
Свежие записи.
Свежие комментарии.
rollemyma к записи Для похудение лечение.
Архивы.
Рубрики.
Proudly powered by WordPress | Theme: Bestore by Themes4WP.



Приобрести сироп Mangoosteen можно на веб-сайте http://mangystin.bxox.info/
MatthewwErync - 2017-10-14  04:50:48
 Новости кино и сериалов

[url=https://luun.ru]Объяснение финала Твин Пикс[/url]
финал твин пикс
Teploper - 2017-10-14  03:46:06
 Наш сайт предоставляет вам достаточно знаний о таком, каким образом произвести ремонт в квартире, в доме, а то и совсем выстроить его целиком. Как видим, если взяться за подобное самому, то можно сэкономить раза в два, а то и больше.

Разделы нашего ресурса подразумевают, что вы будете конкретно отыскивать информацию о том или ином этапе выполнения строительных работ или проведения ремонта. Для начала надо будет правильно подобрать сами материалы, из чего строить, что лучше всего использовать, какой материал необходим именно вам. Соответствующий раздел несомненно поможет вам в этом. В последующем сам процесс, трудности и специфики. И если вы даже прочитав все, что мы в силах вам предложить, не уверенны в собственных силах, то возможно имеет смысл нанять профессионалов.

А вот делать ремонт квартиры – это уже могут множество людей, исключительно в нашей державе, в которой любой мужчина, да и многие женщины – истинные мастера, каким типично держать молоток в руке. Постепенно и правильно делая ремонт в доме или квартире вы сумеете создать тот уют и комфорт, которого вы заслуживаете и о котором воображали.


[url=http://teplovdome2.ru/postroim/sekcionnye-vorota-konstrukciya-i-pochemu-luchshe-priobresti-dlya-garazha.html]ворота для гаража выбрать подробнее[/url]
NathanDor - 2017-10-14  02:07:38
 [url=http://howtoplayxblackjack.com/]lea
how to play blackjack[/url]
how to play blackjack online for money
how to play blackjack youtube
how to play blackjack at a casino
Davidscaro - 2017-10-14  02:07:38
 [url=http://marylandxlivexcasino.com/]rams head live maryland live casino[/url]
maryland live online casino
buses to maryland live casino
maryland casino live
Robertdup - 2017-10-14  02:07:37
 [url=http://onlinegamblingslotsx.com/]gambling online slots[/url]
real gambling slots online
real online gambling slots
online gambling slots real money
Dennisnup - 2017-10-14  01:47:22
 [url=http://slotmachinexgames.com/]quick hits slot machine games[/url]
borderlands 2 slot machine
borderlands 2 slot machine
what are your odds of hitting the smallest jackpot on a vegas slot machine?
GlennMum - 2017-10-14  01:47:21
 [url=http://onlinecasinoxsites.com/]watch casino royale online[/url]
online casino usa
online casino games
online casino usa
SergioHebra - 2017-10-14  01:47:19
 [url=http://onlinegamblingxsites.com/]biggest online gambling[/url]
online gambling new jersey
best online gambling
best online gambling
Dennislep - 2017-10-13  23:38:00
 soulful website http://www.fattah.co/adp-parts-manual.pdf
<<[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] >>
*v komentářich nesmíte používat sprostá slova a odkazy!!!Děkuji za pochopeni.