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ářů(9129)
Alexsnah - 2017-09-15  23:22:01
 Дратути форумчане у меня к вам вопросик очень часто натыкаюсь в мировой паутине на рекламу казино вулкан, Скажите это правда или обман? Знакомый сказал что это обман, хочу услышать ваше мнение по поводу этого сайта

[url=http://vulkancasino.review/Обзор%20онлайнказино%20Вулкан%20Гранд%20%20Vulcan%20Grand%20Casino]вулкан игровые автоматы онлайн клуб[/url]
DanielJom - 2017-09-15  23:06:43
 Очень совестливый онлайн магазин скинов для CS:GO.
Легко зарегистрировавшись в проекте, и пополнив счет, игрок может открыть кейс на сайте, и вывести скин сразу в игру.

- Честный рандом в кейсах (имущество ботов обновляется ежедневно).
- Низкие цены на кейсы.
- Своя пп и бонусная программа.
- Порядочная администрация.

Один добросовестный дроп! Не верите? Убедитесь сами по [url=https://goo.gl/x51dRA][b]ссылке[/b][/url]
BriasnItari - 2017-09-15  20:08:02
 [url=http://love.mr2.space/][img]https://encrypted-tbn3.gstatic.com/images?q=tbn:ANd9GcRwr-ctUm8aRjWNAMDcslrSnubY1sjsZHhBJtJZaLtTvVImGGK2ww[/img][/url]
Увлекитесьработой - этого не в силах стерпеть ни одна нормальная женщина
[URL=http://love.noov.ru]гей знакомства сочи[/URL]
знакомства регистрация
Конечно,можно объяснить, что Маша - жена старого приятеля, сослуживица и т
Haroreab - 2017-09-15  19:43:04
 100mg Generic Viagra Online [url=http://cialtobuy.com ]cialis[/url] Retin A No Script
Cabergoline 0.5 Mg Tab Achat Viagra Marseille
Need Fluoxetine Flutine Obsessive cialis buy online isotretinoin delivered on saturday Hawaii
Haroreab - 2017-09-15  18:41:56
 Nebenwirkungen Cialis Forum [url=http://cialtobuy.com ]cialis[/url] Viagra Rezeptfrei Belgien
Propecia Success Stories Hair Loss
Cod Only Stendra Medication Express Delivery Fedex Shipping cialis price Buy Canadian Cialis
VeronicaGob - 2017-09-15  11:19:04
 [url=http://2sms.ru/bs8no]Hеadrix[/url] - природное средство на основе нативного комплекса из лечебных растений для лечения
[url=http://2sms.ru/2bk7a]мигрени[/url] и
[url=http://2sms.ru/qgfpc]головной боли[/url].
Haroreab - 2017-09-15  08:07:55
 Clomid Plus D Ovulation [url=http://cialtobuy.com ]online pharmacy[/url] Cheap Alte
ative Nexium
Cout Levitra 10 Comparatif Cialis Prix El Cialis Es Mejor
Buy Nizagara cialis Cialis Drug Information
DavidIlles - 2017-09-15  06:36:00
 Привет всем участникам!
Нашел Интересные новости на этом сайте: http://himaan.ru :
[url=http://himaan.ru/foto-prikoly-interesnoe/1594-kak-delayut-toyoty-v-kazahstane.html] Как делают Тойоты в Казахстане [/url]
[b] 10 самых больших самолетов в мире [/b] http://himaan.ru/foto-prikoly-interesnoe/1187-10-samyh-bolshih-samoletov-v-mire.html
http://himaan.ru/foto-prikoly-interesnoe/2699-illyustrator-matt-murphy.html
http://himaan.ru/foto-prikoly-interesnoe/748-doma-kotorye-vyglyadyat-kak-zhivotnye.html
RobertNit - 2017-09-15  01:51:07
 Привет!
Нашел Прикольные фотки на этом сайте: http://anubi.ru :
[url=http://anubi.ru/foto-prikoly-interesnoe/6074-medali-dlya-olimpiady-v-rio.html] Медали для Олимпиады в Рио [/url]
[b] СкайБридж в Сочи — унылый бизнес по-русски [/b] http://anubi.ru/foto-prikoly-interesnoe/5129-skaybridzh-v-sochi-unylyy-biznes-po-russki.html
http://anubi.ru/foto-prikoly-interesnoe/864-slr-za-10-millionov-dollarov.html
http://anubi.ru/foto-prikoly-interesnoe/2093-knizhnyy-gorod-hey-on-uay.html
Michaellolla - 2017-09-14  21:28:17
 ipad casinos
casino guides
casino streams
[url=http://gamblers.casino/mobile-casino/]mobile casinos[/url]
Bitcoin casinos
US friendly casinos
US friendly casinos
Здраствуйте! Вас интересуют клиентские базы данных для продажи Ваших товаров и услуг? Ответ на Email: prodawez395@gmail.com - 2017-09-14  15:15:35
 Здраствуйте! Вас интересуют клиентские базы данных для продажи Ваших товаров и услуг? Ответ на Email: prodawez395@gmail.com
Здраствуйте! Вас интересуют клиентские базы данных для продажи Ваших товаров и услуг? Ответ на Email: prodawez395@gmail.com http://w.w/
Ronweix - 2017-09-14  13:08:22
 Ventolin Without Prescription India [url=http://cialtobuy.com ]cheap cialis[/url] Cialis Zerkauen
Amoxicillin Side Effects Dizziness
Compra Viagra Sin Receta cialis online Nebenwirkungen Viagra Pfizer
Sildenafil - 2017-09-14  12:08:20
 http://generic-sildenafil.us.com sildenafil
generic viagra
[url=http://generic-sildenafil.us.com]sildenafil[/url]
Viagra without a doctor prescription - 2017-09-14  11:57:48
 laser treatment for hair loss new allergy treatments
http://viagrawithoutadoctorprescription.us.org viagra without a doctors prescription
viagra without a doctor's prescription
[url=http://viagrawithoutadoctorprescription.us.org]viagra without a doctors prescription[/url]
JeremyUtelm - 2017-09-14  07:54:18
 [b]снять квартиру в москве возле кремля #480[/b]


[url=http://bit.ly/2uFjHjS][IMG]http://i92.fastpic.ru/big/2017/0809/2b/8379ebce16abb0e8802758604cae162b.png[/IMG][/url]


[url=http://bit.ly/2uFjHjS][b][color=red]СМОТРЕТЬ ВСЕ ПРЕДЛОЖЕНИЯ![/color][/b][/url]

[url=http://bit.ly/2uFjHjS][b][color=green]ЕЖЕДНЕВНО СОТНИ СВЕЖИХ ПРОВЕРЕННЫХ ВАРИАНТОВ ТОЛЬКО ОТ СОБСТВЕННИКОВ![/color][/b][/url]



[url=http://bit.ly/2uFjHjS][IMG]http://i94.fastpic.ru/big/2017/0809/a6/3969f6dce7e2f2c435d0e80950d09ea6.gif[/IMG][/url]


























Сдать, снять в Восточном Дегунино в Москве недорого.125 предложений снять однокомнатную квартиру в Восточном Дегунино22. Комнат: 1 Этаж: 1014 Стоимость: 24000 руб. Ближайшее метро 102 (35 мин. пешком).
Аренда квартиры в жилом комплексе быстро и надежно.Элитные жилые комплексы Москвы и элитные дома в Москве от нашей компании на самых заманчивых Северо-восточный административный округУдальцова 81.
вторичка продажаснять квартиру на длительный срок авито сдать комнату в москве продам 2 х комнатную квартиру киев купить квартиру агентство 4
OOO Развитие недвижимость; ООО Жилторг; ООО Центр жилья и ипотеки; ООО Единая городская служба недвижимости; ООО РФН Пенаты
в Москве. Аренда квартир и комнат без посредников на snimi-bez-На сайтеможно снять квартиру без посредников в Москве от хозяев напрямую.Фомичевой д.121-к квартира25000месяц Желательно чтобы до метро можно было добраться пешком.
Квартира, Россия, Москва, Ярославское шоссе, 127 8 ПРЕМИУМ. Скрыть1 комн. квартира; 381810 м2; 9 этаж из 23; до метро 7 мин. трансп. ВПЕРВЫЕ ПОСЛЕРайон со сложившейся развитой Показать. Квартира
Booking.com КвартираКвартира посуточно в Москве рядом м.Квартира посуточно вблизи метро Молодёжная, Рублевское шоссе д.95 кор 1
Москва.поможет Вам снять квартиру недорого и без посредников Сдам однокомнатную квартиру Москва бескудниковский бульвар 22. Москва
Объявления об аренде квартир рядом с метро Люблино. ЦИАН - самые свежие и Рядом тц москва, множество магазинов, сетевых супермаркетов, аквапарк, школы, детские сады и площадки.8-929-942-81-25 Ева. СРОЧНО!
комната в аренду в 1-комнатной квартире — Кантемировская метрозалога комната в аренду в 2-комнатной квартире — Каширская метро ул Москворечье, 11, Москворечье-Сабурово, Москва Чистая, уютная квартира с качественным ремонтом рядом с метро.Одна соседняя комната пустует.16 т.р.
Снять квартиру в Москве и Московской области.Собственник. Сдаю комнату в 4х комнатной квартире в спальном районе. Без залога, без депозитов.
Комнаты и квартиры без посредников! Как снять квартиру, квартиры на сутки в газете:Что из себя представляет газета "Сдаю квартиру"?комнат и квартир от хозяев в Москве и ближайшем Подмосковье. В газете доступны
376773, Москва 2-к. квартира49, Общ. 60 м2. Кухня. 7 м2, Мебель Телефон Интернет Холодильник TVРайон: Восточное дегунино
Москва, Измайловский бульвар, д.Квартиры в Измайлово 48Квартиры в Москве 97Квартиры у метро Сегодня — день рождения МИЭЛЬ!тысячам клиентов, а МИЭЛЬ-Аренда помогла снять квартиру
Сдаю отличную 1-комн. квартиру ПОСУТОЧНОПО ЧАСАМНА НОЧЬ в Москве около ст. м.ВДНХ. (5 мин. пеш.) Так же теперь до нас можно очень быстро доехать и из противоположенных районов города по МЦК (15-20 минут) до ст.Роман. Контакты: +7-(963)778-33-63 звонить с 9:00 до 9:00 час.
Любой обмен ваши варианты Сдам квартиру в арендуНовая Халява Даромквартир купит квартиру в москве купити квартиру купить вторичное жилье купить01:57. Срочно продам 3-х комнатную квартиру по Люстдорфск.
снять комнату в коммуналке в москве без посредников как правильноавито москва снять квартиру без посредников посуточно авито снятьна процессы ч: прежде всего снять квартиру в чертаново южное без
Аренда двухкомнатных квартир, Московская область, Москва: частные объявления - квартира ЖК Новоград Павлино.Квартиры с отделкой от 1,79 млн. руб. в 3 км от метро!Комиссия агента 30%Предлагаю в аренду 2-х комнатную квартиру, общей площадью 50 кв. м, комнаты изолированные 12 и
Объявления о сдаче в аренду 2-комнатных квартир на длительный срок без посредников в Москве на Avito.2-к квартира, 63 м, 1019 эт. 26 000 руб. в месяц. м. Бульвар Дмитрия Донского ул Маршала Савицкого, 26. Сегодня, 05:


Объявления о сдаче в долгосрочную аренду однокомнатных квартир в Москве, в том числе и без посредников - сделка - Купить Продать Снять на длительный срок Сдать на длительный срок Снять 32 . 1 этаж. С ремонтом и мебелью.
аренда недвижимости Москве. Аренда производств в ВАО Восточном районе Скрыть . 75 846 руб.месяц. м. Первомайская, 3-я Парковая улица, 41АС1. Производство.
Московская недвижимостьтренды и прогнозы Средняя стоимость самых дорогих квартир, которые сдаются в аренду в Москве, составляет 23 900 долларов в месяц, что на 10% выше, чем в первом полугодии 2013 года.
Сдать Сдать квартиру. Москва Санкт-Петербург Аренда квартир. объявления на карте Руб. в месяц. 65 000.
Объявления о сдаче в аренду квартир в Москве на Avito По всей России Москва Московская область Выбрать другой Медведково 900 м, Шокальского проезд, 32.
Вы увидите больше информации от- Аренда квартир в Москве без посредников, зайдя на Facebook Аренда жилья, сдать-снять, купить-продать. Все виды объявлений. Без посредников.
Панорамные виды в… 1 481 000 руб. 26 329 24 750. Площадь: 207 м2 С нами аренда элитных квартир в Москве — простой и безопасный с финансовой точки зрения процесс.
Снять квартиру на сутки в Москве - Чертаново Южное. Объявления об аренде квартир, цены, телефоны собственников 27 Января 2017.
Сдается двухкомнатная квартира от ХОЗЯИНА только для СЛАВЯН. . Автозаводская, 10 минут пешком, ул. Трофимова 217. Холодильник Снять 1-комнатную квартиру без посредников в Москве.
Снять 3-комнатную квартиру без посредников от собственника Более 710 Этажность 27. Срок сдачи длительный. Оплата 1 месяц Сдам 3-комнатную квартиру Москва, Бродников переулок, 10к2, Центральный р-н, Якиманка.
Число комнат: 1 2 3 4 5+ студии. Без посредников Дубнинская ул., 6к2 метро Владыкино 2-комнатная, 53 м, 2 из 9 этаж Предлагается в аренду двухкомнатная светлая красивая квартира с ремонтом и новой мебелью.
Без залога и предоплат! В квартире есть телевизор, проведен интернет, стиральная машина, холодильник и т.д Москва, Ул. Марии Ульяновой, . 15 мин. Пешком от м. Университет и 10 мин. Пешком от м. Проспект Вернадского.
Снять квартиру в районе Северный города Москва, однокомнатные, двухкомнатные, трехкомнатные квартиры, а также комнаты в аренду в районе Северный. На сутки или на длительный срок.
Сниму квартиру (2-к), Москва 35 000 р Сниму квартиру без комиссий и депозитов от собственника Семья Снимет Срочно однокомнатную квартиру недалеко от метро. Квартира нужна в ближайшее время.
Объявления сдатьснять квартиру в Москве Чтобы дать объявление о сдаче квартиры, здания или офиса необходимо заполнить форму .
Выбраны предложения по запросу: снять квартиру на Бунинской в Москве Бунинская аллея (2 ост. трансп.) Цена: 25 000 рубмес. Аренда: долгосрочная 8 (977) 794-71-69.
Купить квартиру Снять квартиру Купить комнату Снять комнату. Количество комнат. 1 2 3 4 5+ Предлагается шикарная квартира в сталинском доме в престижном районе Москвы


Релевантные слова:
снять 1 комнатную квартиру в москве от хозяев
посуточная аренда квартир в москве без посредников
снять квартиру в москве без агенства и посредников
аренда квартир москва без посредников посуточно
сдам квартиру посуточно без посредников москва
снять квартиру на сутки в владикавказе
снять квартиру в москве без посредников частные объявления
аренда квартир в москве вконтакте
сниму квартиру в москве метро фрунзенская
снять квартиру в москве на два месяца
снять однокомнатную квартиру в москве без посредников недорого
снять комнату в москве метро проспект вернадского
снять комнату на сутки в москве без посредников
аренда квартир в москве от хозяев посуточно
снять квартиру в москве щелковская
снять квартиру в москве


Другие обьявления:
[url=http://64bitgamer.com/showthread.php?tid=137782]где снять квартиру в москве без посредников #284[/url]
[url=http://www.drz-wars.ru/forum/index.php?topic=5.new#new]снять квартиру в москве от 15000 #580[/url]
[url=http://forum.technicaldiving.ie/index.php/topic,202101.new.html#new]снять квартиру херсон без посредников посуточно #505[/url]
[url=http://radiodeti.ru/forum/viewtopic.php?f=2&t=503763]снять квартиру в москве посуточно метро выставочная #490[/url]
[url=https://somethinghub.com/smf/index.php?topic=137911.new#new]снять квартиру в москве шоссе энтузиастов #236[/url]
[url=http://medipop.eu/forum/index.php/topic,202534.new.html#new]сниму квартиру в москве без посредников недорого #521[/url]
[url=http://gamesriot.org/news/viewtopic.php?f=9&t=88446]снять квартиру в москве оранжевая ветка #867[/url]
[url=http://osipenko6.ru/forum/index.php?topic=185850.new#new]снять квартиру в г.москва без посредников #703[/url]













































































































































.
MarcoFum - 2017-09-14  07:01:01
 Привет всем участникам форума! Класный у вас сайт!
Нашел интересные материалы для владельцев дачных участков и не только: [b] [b] цена на мебельный щит из березы [/b] [url=http://www.ekolestnica.ru/]http://www.ekolestnica.ru/[/url]
Здесь: http://www.ekolestnica.ru/mebelnyj-shhit-v-spb.html
Тут: [url=http://www.ekolestnica.ru/ceny-na-mebelnyj-shhit.html] мебельный щит из сосны караганда [/url]
Тут: [b] резные деревянные столбы купить [/b] http://www.ekolestnica.ru/balyasiny-v-moskve.html
http://www.ekolestnica.ru/mebelnyj-shhit-v-tyumeni.html
http://www.ekolestnica.ru/mebelnyj-shchit-iz-sosni.html
Здесь: [b] щит из дерева клееный томск [/b] http://www.ekolestnica.ru/mebelnyj-shhit-v-tomske.html
Michaellolla - 2017-09-14  02:12:32
 Online slots
Online BlackJack
Online casino reviews
[url=http://gamblers.casino]Online slots[/url]
play slots online
Online roulette
Welcome bonuses
VeraGob - 2017-09-13  18:21:18
 [url=http://2sms.ru/m4r59]Hеadrix[/url] - простое средство на основе нативного комплекса из лечебных растений для лечения
[url=http://2sms.ru/zxyoy]мигрени[/url] и
[url=http://2sms.ru/7bu2d]головной боли[/url].
Ronweix - 2017-09-13  14:53:31
 Acquisto Cialis Italia [url=http://cialtobuy.com ]viagra cialis[/url] Amoxicillin .25g Dosage Information
Cialis Viagra Verkauf
Viagra Venta Muy Barata viagra cialis Dragon Power
Peterclona - 2017-09-13  13:12:03
 The Pittsburgh Steelers include been searching as far as something the pass-rush answer for years. After http://www.officialsteelerslockerroom.com/elite-t.-j.-watt-jersey swing and missing in the ago, they might include for good develop the answer.
First-round rookie T.J. Watt displayed a tough pass scoot and versatility in a splashy opening day debut. Watt gobbled up six tackles, two sacks and an interception. He became just the third trouper to report two-plus sacks and an INT in their first NFL plot (since sacks became official in 1982), per NFL Research. The two whilom were replacement players Charles Glaze and Tommy Haynes in 1987.
Regardless of the performance, Watt wasn't satisfied after the 21-18 be the victor in exceeding the Cleveland Browns.
"We felt like we were in the http://www.steelersauthorizedshop.com/authentic-t.-j.-watt-jersey backfield all of the adjust, but we be struck by to get rid of plays," Watt said, via ESPN. "We had a few sacks sinistral on the plateau, from my prong of view."
Both of Watt's sacks displayed a merciless pursuit. On the faulty one, he fought to the core two blockers, didn't slack up on the fritz and chased DeShone Kizer down from behind.
Watt became the in the first place Steelers better to record two-plus sacks and one pick since Week 14, 2010 (LaMarr Woodley).
"He understands what we want from him, and he goes out and executes," Casey Heyward said of the rookie. "He's a perspicacious rusher. He doesn't suffer himself in situations where he's revealed of a play."
Because the souvenir: T.J.'s brother, [url=http://www.authenticpittsburghsteelers.com/cheap-t.-j.-watt-jersey][b]t.j. watt jersey[/b][/url], did not record his primary pouch until his third NFL game. J.J. Watt has never finished with two-plus sacks and one-plus INT in any play (89 games played including playoffs). Gauntlet thrown.
<<[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] >>
*v komentářich nesmíte používat sprostá slova a odkazy!!!Děkuji za pochopeni.