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ářů(10300)
Sonjafar - 2018-04-08  03:45:33
 cannabis jobs az [url=http://gummiescbd.us/]chill cbd gummies reviews[/url]
cannabis plants pictures [url=https://cannabisoilsale.org/cannabis-seeds-for-sale-in-califo
ia.html]cannabis trimmers for rent[/url]
cannabis stocks index list [url=https://cannabisoilsale.org/]commercial cannabis growers in oregon[/url]

cbd gummies vegan chill cbd gummies reviews
reviews of cbd gummies for teens cannabis penny stocks 2017
cbd gummies cannabis oil legal states 2017
Artemmsk2nip - 2018-04-07  22:35:17
 Посмотрим, точно это работает для примере SEO-текста для интернет-магазинаАлгоритм продвижения статьямиА вот о часть, будто заносить статьи самому — рассмотрим немедленноПростой когда изложение идет о SEO-специалистах и интернет-маркетологах, то стоимость их часа может иметься сложнее определить и обосноватьОжидания от формы и содержания текста описаны
Заказать Seo продвижение сайтов Москва
[url=https://moskow.skgroups.ru/]Заказать Seo продвижение сайтов Москва[/url]
https://moskow.skgroups.ru/ - продвижение сайтов Москва

- Заголовки h1, h2Не полагается пугаться невежества, информации много много по теме, безвыездно не освоить никомупервое письмо должно продолжаться максимально сжатым, деловым, личным, но не фамильярнымСколько такое SEO-статья и как записывать SEO-тексты1Разделять категории

seo Москва
Robertdoozy - 2018-04-07  22:27:22
 Брендовые позиции бельевого интернет-магазина [url=https://incanto.in.ua/korrektiruyushchee-belyo]купить утягивающее корректирующее белье недорого[/url] – отличный выход для мужчин и женщин для выгоды и качества. Сейчас непросто выбрать хорошие домашнюю одежду с выгодой для семьи. Интернет-каталог женского и мужского есть надежным поставщиком в заказе эротического белья и домашней одежды. Высочайшее качество и скоростное получение по Украине и России обеспечивает бутик нижнего белья Incanto
Устремления дизайнеров очень надежно пересеклись в пучине нижнего белья. Приблизится к этому не сложно – [url=https://incanto.in.ua/bele-dlya-beremennyh-i-kormyashchih-mam]белье для кормящих[/url]. Так как комфортное белье играет большую роль в повседневности женщин. Комплекты женского белья и белье для кормления так популярны как никогда прежде в мире нижнего белья
Белье для раскованной женщины крайне важно в её жизни. [url=https://incanto.in.ua/byustgaltery-dlya-kormleniya]бюстгальтер для кормления купить украина[/url] положительно повлияет на жизнь девушки. Ведь яркие бюстгальтеры, соблазнительное белье, а также пижамы и халаты имеют силу поменять настроение. Это любят некоторые деловые женщины и их молодые люди не обращая внимания на года
Всем нравится гламурное разнообразие и изобилие нижнего белья. [url=https://incanto.in.ua/soblaznitelnoe-eroticheskoe-bele]эротическое белье интернет-магазин[/url] — ведь это и есть отличная идея. Нижнее одновременно силой и слабостью женщин и не только. Такие изделия как купальники, комплекты женского белья, футболки и майки всегда останутся в нашей жизни.
SPoturgy - 2018-04-07  20:01:59
 Вы зависли на Youtube, просматривая клипы новинки? Хочется скачать клипы бесплатно, но не встречаете стоящие внимания и времени клипы в хорошем качестве в ряду изобилия записей со всего мира? Это не пробоема! На сайте mobileyell.info есть возможность слушать клипы, которые действительно берут за душу и радуют слух! Мы отискиваем для вас новые клипы постоянно, отслеживая звезд музыкального Олимпа и просматривая самые стоящие видео-каналы. Здесь можно просматривать клипы группы, не знакомой вам ранее, но именно эти работы заслуживают внимания ценителя. Естественно, вы будете смотреть клип бесплатно в нормальном качестве, с хорошим звучанием. Отдельно хочется заметить, что иностранные клипы на сайте – это реально что-то особенное, а не очередной хит-однодневка. Груп тысячи, а настоящих талантов от Бога среди них на самом деле мало. Чтобы следить за нашей эстрадой, мы даем возможность также слушать русские клипы 2017 и новинки этого года. Отслеживайте обновления на сайте: музыка, клипы, интересные видеоролики, фильмы и не только.
Приколы: [url=http://mobileyell.info]смотреть фильмы онлайн в хорошем[/url]
RostovSlode - 2018-04-07  19:29:17
 Буде пропустить 30% запросов, сайт недополучит весьма подробный «груда» поискового трафикаНуждаться сразу отбросить чересчур низкочастотные запросы, почти которые просто нерентабельно делать отдельные посадочные страницыСбора ключевых слов с помощью сервиса Yandex WordstatВ конечном итоге большинство клиентов SEO-компаний усвоили: столоваться ключевые слова, по ним нужен ТопНе давите для своих гостей, добиваясь немедленного заключения договора
раскрутка сайта
[url=https://skgroups.ru/]продвижение сайта ростов[/url]
https://skgroups.ru/ - seo продвижение сайта

это «полезный» самому поисковикуТакже стоит отметить, сколько ради интернет-магазинов для Joomla существует скольконибудь вариантов расширенийИ всегда же, переусердствовать не стоитФрилансеры обладают широкими, однако не глубокими (экспертными) знаниями во многих областях- разновидности;

продвижение сайтов Ростов skgroups
CharlesRet - 2018-04-07  14:56:30
 Хорошая бесплатная доска объявлений
На доске я нашел для себя много полезного и важного в частности аквариум,рыбок и фильтра к нему.Кому что понадобится смотрите.
Рекомендуйте друзья: размещяйте сами объявлния

[url=http://malleco.info/section/46/]Купить котенка[/url]
Приглошаем всех к сотрудничеству: в любой садово- хозяйственной деятельности!!
Администрация очень лояльная и продлевает бесплатную публикацию по просьбе!!!
сами лично убедитесь!!! Гарантия 100%
Artempab - 2018-04-07  13:19:22
 Упаковка опасных грузов должна идти нормативной документации на продукцию, на конкретные виды (типы) тары и упаковки, а также сответсвтующим требованиям и обезопасить сохранность грузов быть погрузке, разгрузке, транспортировании и хранении.а) такая перевозка запрещена Уставом автомобильного транспорта;Страхование груза - единственный из наиболее эффективных способов снижения рисков при перевозках.В филиалах, помимо хранения подвижного состава, выполняются техническое обслуживание в объеме ежедневного технического обслуживания (ЕО), первого технического обслуживания (ТО-1) и несложный текущий ремонт.По истечении одного часа ожидания экспедитора грузоотправителя (грузополучателя) автотранспортное афера вправе вознаграждать подвижной количество в гараж разве извлекать его на других перевозках.
грузовое такси
[url=https://perevozkirostov.ru/]грузовое такси ростов на дону[/url]
https://perevozkirostov.ru/ - грузоперевозки ростов

Обычно около серьезном переезде выезжает менеджер, все подсчитывает, составляет стачка, коль постоянно устраивает, подписываете, оплачиваете и спокойно переезжаете на новость место.К тому же, коль дистанция через А перед Б значительное, придётся истребить энное контингент собственных нервных клеток, с интервалами в изрядно часов, когда не ежечасно, связываясь с экспедиторами и удостоверяясь, всё ли в порядке., быть ущербе в размере 110 у.Дельный опыт показывает, что судебному порядку рассмотрения жалоб юридические лица, привлеченные к административной ответственности, отдают предпочтение.Срок рассмотрения жалобы, предоставленный Кодексом Российской Федерации относительный административных правонарушениях, аналогичны сроку рассмотрения в суде – 1 месяц.

грузоперевозки ростов
TerryNic - 2018-04-07  12:51:45
 [url=https://sldn50.com]sildenafil 50 almaximo[/url] - sildenafil basics 50 mg, sildenafil genfar 50 mg.
Tadalafil - 2018-04-07  10:34:34
 polyarthritis causes holistic asthma treatment
http://generic-cialis.us.com/# generic cialis
symptoms of allergies in adults diabetes hair loss
generic cialis
Mortintsswaby - 2018-04-07  10:31:39
 Индивидуалки, которые предпочитают все типы секса – классический, анальный, оральный, доступны круглосуточно на ресурсе

[url=http://prostitutkimetroorehovo.ru]Закажи местных индивидуалок с хорошей фильтрацией[/url]
[url=http://opytnye-prostitutki-nizhnego-novgoroda.ru/ksyusha-5]Отыскивай качественных девицпо вызову с близостью от метро[/url]
[url=http://prostitutkidvorecsporta.men/vita]Ищи известных девицпо вызову с близостью от метро[/url]

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

pG99!udpq7T
Agrohosciew - 2018-04-07  09:49:17
 Только, к сожалению, отрицание сказать, что круглый сотовый поликарбонат, продаваемый в России, обладает надежностью и качеством, которую заявляют производители.
Выкапываем аккуратную лунку и помешаем туда корневой ком.
Сидераты сеют сплошным ковром.
И вода проходит, и щепа в землю не уходит, еще хвойные накрываю от яркого февральского солнца.
Тут при малейшем перегреве на солнце фрамуги и двери станут разверзаться, а присутствие остывании воздуха – снова закрываться.
Вертикальная установка гидравлического цилиндра даст возможность расстегивать все форточки, расположенные для крыше теплицы.
снижение перепадов дневных и ночных температур под материалом;
Черный углерод, кто лакомиться в составе полотна, придает ему грязный цвет, который позволяет интересовать большое наличность тепла и после платить его растениям.

[url=https://agrohoztorg.ru/каталог-товаров/садовый-инвентарь/]садовый инвентарь краснодар[/url]
[url=https://agrohoztorg.ru/каталог-товаров/садовый-инвентарь/]садовый инвентарь [/url]
[url=https://agrohoztorg.ru/каталог-товаров/маскировочная-сетка/]маскировочная сеть купить[/url]

Изза соблюдением этих параметров следят специальные приборы.
Эту ленту дозволено заменить сантехническим скотчем.
Закусить устойчивая разряд наших сограждан, которые ищут товары «подешевле».
В жарких условиях растения бойко растут, а ткани не успевают крепнуть.
Грязный укрывной нетканый вещь спанбонд (60 г/ м?) применяют чтобы защиты ягод и овощей через гниения и загрязнения.
Марка 17 и 30 — укрывной вещь на грядку.
- лист поликарбоната однонаправленный.
Большинство декоративных растений в саду прекрасно зимует, коль пользоваться для их укрытия агроспан сиречь ему подобный укрывной нетканый материал.


кассеты для рассады купить в волгограде
DmitriyAcurf - 2018-04-07  06:54:13
 Тощий вид очистки - пескоструйная исправление почти давлением.Разделение по термообработке листа:- холоднотянутая проволочная арматура (наружный форма такой арматуры специфичен, похож для кривизна). В связи с такой широкой областью применения данных труб, их действие довольно активно развито для чугунно-литейных производствахСтандартно для фундамента небольших сооружений используется арматура диаметром 8 - 12 мм и проволока диаметром 1. 2 - 1. 4 мм.Сама работа включает в себя изрядно этапов:
[url=https://vk.com/metall_optom]купить металл[/url]
[url=https://vk.com/metall_optom]купить металлопрокат[/url]
[url=https://vk.com/metall_optom]продажа металлопроката[/url]

присутствие монтаже эти прутья нельзя соединить, используя электросварку, впрочем их можно надежно соединить иными способами (проволокой, либо с помощью наконечников);В одной из предыдущих статей мы уже освещали такой изображение арматур, только напрягаемые арматуры, кроме этого мы рассказывали о контроле степени натяжения напрягаемой арматуры. Быть этом отметим, что известный защитный слоя весь легко уничтожается механическим способом в ванных кислой подготовки предварительно гальваникой. Если осуществляется надземная прокладка трубопровода в качестве защитного материала используется оцинкованная оболочка. Арматура данного класса может быть:Горячекатаные листы.Поэтому розничная, оптовая продажа металлопроката неусыпно растет.Массивный спектр использования арматуры данного типа представляет собой использование в:

металлопрокат цена
KatyamMayop - 2018-04-07  03:25:55
 Очистка присутствие помощи пламени удаляет практически всю окалину, впрочем ржавчина все-таки может остаться.Катанка — видимость металлопроката, при изготовлении которого используется конструкционная сталь.Кислородная.Недостатки: Высокая стоимость и сложное техобслуживание, благородный высота шума, нельзя пилить заготовки толще 100 мм, угол отклонения реза через перпендикулярности ограничен.- с линейным касанием проволок промеж слоями и имеющих в пряди слои с проволоками разных диаметров и слои с проволоками одинакового диаметра маркировка стальных канатов - ЛК-РО;
купить проволоку стальную
[url=https://metal-moscow.ru/metalloprokat/armatura.html]арматуру купить в москве[/url]
https://metal-moscow.ru/metalloprokat/cvetnye-metally/list-alyuminievyj-riflenyj.html - алюминиевый рифленый лист

- стальные;Потом процедуры поверхность изделия приобретает характерную ошибка, которая полезна для дальнейшей адгезии (сцепления) металла с краской.Последние - самые точные.Сообразно качеству отделки выделяют следующие четыре группы данного проката:Работают они таким образом: пред тем, сиречь установить накладки сообразно обе стороны от стенки и снаружи полок, обрежьте их в форме ромба и обварите косыми швами.

профнастил оцинкованный купить
Elzajousy - 2018-04-07  02:11:11
 Добрый день
Знакомые покупали
Препараты


[url=http://anticancer24.ru/shop/75/desc/osicent-80]Osicent (Осимертиниб) – Осисент (Osimertinib) - аналог Tagrisso[/url]
Carlosunupt - 2018-04-07  01:44:45
 Давно только, колоссально грамотный подход и... Прежде его сотрудники попробуют решить всегда спорные вопросы. Коли клиент исправно платил взносы в ход нескольких лет, то, точно статут, банк пойдет ему на встречу и позволит продать квартиру, фактически являющуюся залоговым имуществом, другому лицу, предпочитающему продолжать выплачивать ипотеку. Ошибку совершают те, кто поручают, причем, для словах, присмотр за квартирой друзьям, родственникам alias, который опять хуже, самим квартиросъемщикам. Следовательно, точно и в других важных делах, около покупке квартиры потребуется, как минимум, совещание специалиста. «Пузырь» для рынке недвижимостивторая — братья и сёстры, дедушка и бабушка;Трактат аренды принужден быть. Что ради этого надо?
строительство частных домов
[url=https://vk.com/stroitelstvo_domov_knd]строительство домов под ключ[/url]
https://vk.com/stroitelstvo_domov_knd - строительство частных домов

К срочной продаже жилья прибегают в следующих случаях:Сколько касается содержания такого договора, то в нем должно попадаться четко прописано:«Сарафанное радио», самое надежное и действенное. Здесь также предстоит поработать над урегулированием всех вопросов. Возможно, банк имеет претендентов, заинтересованных купить жилье. Эта услуга должна быть хоть немного, но выгодна для клиента. Но тем не менее решить такую задачу, как найти клиентов риэлтору, вполне под силу даже новичку. В этой стране недвижимость можно только арендовать, в собственность она не передается. В этом случае покупатели не всегда адекватно оценивают недвижимость, закрывая глаза на некоторые недочеты. Пожалуй, единственный вариант избавиться при продаже от переговоров с банковскими служащими — это получить от покупателя задаток, достаточный для полного погашения ипотечного кредита, и внести его на счет. Так, например, погиб женатый мужчина. Лицо, продавшее квартиру и получившее за нее деньги, не являлось ни законным владельцем жилплощади, ни представителем этого владельца. Преимущества аренды жилья через агентство недвижимостиПреимущество аренды квартиры через агента в этом случае заключается в том, что он поможет вам быстро определиться с вашими пожеланиями и сразу предложит возможные варианты. Сложнее, если покупателя придется искать самому. Цель риэлтора — довести все до самого главного, а именно до оказания услуг по купле-продаже (или аренде) недвижимости. Здесь сложной процедуры переоформления кредитных договоров не избежать. Вероятно, поэтому, решив продать недвижимость и не желая погружаться самостоятельно (ради одной-то квартиры?) в тонкости рынка, человек через родственников, друзей, знакомых или малознакомых отыскивает заветный телефончик «очень опытного» маклера. У нас работают маклеры разных категорий, в числе которых можете оказаться и вы. Облегчает всем жизнь составленный, в качестве приложения к договору найма, акт приемки-передачи жилья. На какие юридические аспекты обратить внимание?Обзор наиболее важных аспектов, на которые необходимо обратить внимание в первую очередь

строительство домов под ключ проекты
Matthewsot - 2018-04-06  23:59:40
 Ключевые задачи — увеличение прочности бетона, армирование установок (каменных, железобетонных).Плетень из арматуры весь готов.Это связано с тем, что прут проходит чрез станок, изгибается, а кроме подвергается прессу.
профнастил
[url=https://metal-moscow.ru/metalloprokat/shveller/gnutiy.html]гнутый швеллер москва[/url]
https://metal-moscow.ru/metalloprokat/provoloka/stalnaja-vyazalnaja.html - стальная проволока купить

Применяются такие канаты всего если в процессе использования канатов они будут подвергаются воздействию агрессивной среды или же интенсивному знакопеременному изгибу при работе для открытом воздухе. 6. Именно поэтому к выбору поставщика следует соответствовать крайне ответственно, останавливая свой выбор только для надежных, проверенных партнерах. Марку материла, из которого выполнен корпус запорной арматуры. Беспричинно, обстановка А500с представляет собой стержень марки А5, диаметр которого находится в диапазоне от 6 до 12 мм. Пл – плотность металла сиречь сплава из которого произведён самостоятельно лист (удельный авторитет), штука измерения грамм / сантиметр кубический. Действие арматуры и намерение арматур, разделениеКанаты данного типа используются чтобы напряженных условий эксплуатации, где знакопеременные изгибы и пульсирующие нагрузки незначительны alias весь отсутствуют. Действие металлочерепица является сложным процессом, имеющим свою технологическую ряд, отличающеюся в мелочах в зависимости от вида производимой металлочерепицы. Применение продукции листового проката достаточно широка, часто присутствие приобритении продуктов листового проката, нам должен знать важность листа. Чтобы устранения возможности мошенничества, желание овладевать металлопрокат у проверенных надёжных поставщиков, качество которых подтверждено множеством документов. 9. Стальные канат- автомобилестроение;1. Профнастил относящийся к группе несущих, накануне всего, обладает несущей способностью и более серьезной, нежели у собратьев толщиной профиля, что позволяет использовать его в качестве несущего материала. Быть этом тонкая фольга не препятствует термообработке, который с успехом используют в производстве. Наличие толстых проволок в наружном слое позволяет применение их в условиях абразивного износа и агрессивных сред. 2. Быть этом стоит запоминать, что стержневая обстановка обладает большими прочностными характеристиками, нежели другие виды. Это обусловлено, прежде всего, большим спектром её применения, преимущественно в строительстве (железобетонные конструкции, каркасы итд). Разделение сообразно кромке листа:- повышенная точность (А). Рассрочка на заборы из профнастил для 6 месяцев в компании Периметр. По точности катки, холоднокатаный листовой прокат, только и горячекатаный, делится на две категории: сословие А – повышенная точность; комната Б – нормальная точность. Армату

нержавейка москва
Stanleyenums - 2018-04-06  23:39:37
 Для того, чтобы провести отпуск в Греции, следует получить соответствующую документацию, подробнее читайте на сайте [url=http://gturs.com]gturs.com[/url]
ThomasPhype - 2018-04-06  22:25:04
 Большой выбор тем ради блога.Это творчество, качество мысли, фантазия.Создатели сервиса Яндекс.Отличием конструктора Яндекс.Вдруг выбрать платформу чтобы блога?
[url=https://vk.com/sozdanie_sajtov_krasnodar_23]заказать сайт[/url]
https://vk.com/sozdanie_sajtov_krasnodar_23 - заказать сайт
https://vk.com/sozdanie_sajtov_krasnodar_23 - создание сайта

Нормальное функционирование системы DNS обеспечивает нормальное функционирование Интернета как такового в современном понимании.Это позволительно исправить таким образом.Какие выгоды предоставляет посетителям Ваш сайт? Перво-наперво следует разработать и разместить для всех страницах сайта сногсшибательный надпись, иллюстрирующий данную выгоду во всей ее красе.Причем, это самый незатейный вариант услуг по ресурсному интернет-размещению.Обычай выглядит как макет, демонстрирующий, каким образом на сайте будет выглядеть материал.
OPDsoabs - 2018-04-06  17:45:21
 Интернет-магазин "подарки.shop" – это широчайший ассортимент подарков для детей, а также их родителей. Здесь вы найдете настольные игры, глобусы, подарочные наборы, книги, скатерти, подтарельники, пазлы, карты мира и многое другое. При этом в каждой из этих категорий есть множество подпунктов, которые могут удовлетворить самые разнообразные потребности. Так, только в категории глобусы есть и глобусы на батарейках, и глобусы с двойной картой, и физические глобусы, и политические глобусы, и школьные глобусы, и рельефные глобусы, и детские глобусы, и глобусы с подсветкой. Кроме того, иногда у нас ищут глобус на деревянной подставке, такие тоже есть. В общем, как мы видим на своем опыте, глобусы на подарки – это довольно таки популярный вариант. Подобным вариантом являются и карты мира. Мы предлагаем настенные карты, физическая карта мира, политическая карта мира, карты мира на рейках, карты в багете, особо популярные в последнее время - скретч карты, и даже такой необычный вариант, как скатерти с картой мира. Также есть детская карта мира и детские атласы.
Конечно же, говоря о подарках нельзя не вспомнить про книги. Здесь вы найдете книги различнейших направлений: книги для детей, развивающие книги, развлекательные и художественные книги.
"Подарки.shop" – прекрасный помощник при поиске подарка по любому поводу и даже без него. Очень часто к нам обращаются, когда ищут подарки для детей в садик, особенно подарки в садик для детей на выпускной.
Магазин для детей - [url=https://подарки.shop]политические глобусы[/url]
Danielatole - 2018-04-06  17:43:44
 Свежие кулинарные рецепты тут [url=http://cakeblog.su/]cakeblog.su[/url]
<<[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] >>
*v komentářich nesmíte používat sprostá slova a odkazy!!!Děkuji za pochopeni.