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ářů(9084)
Haroreab - 2017-09-21  09:26:23
 Cialis Und Paracetamol [url=http://cialtobuy.com ]online pharmacy[/url] Rxpills Cialis
Us Pharmacy Viagra Prices Cialis France Pharmacie Cialis 10mg Tablets
Buy Tadalis cialis buy online El Viagra Y La Diabetes
Haroreab - 2017-09-21  09:08:18
 Uni [url=http://cialtobuy.com ]cialis[/url] Viagra Junge
Viagra Joven Kamagra Sublinguale
Cialis Faut Il Une Ordonnance generic cialis Generico De Kamagra
JosephFab - 2017-09-21  06:59:48
 [url=http://www.creditsenligne.org/credit-10000-euros/credit-4000-euros]сredit 4000 euros[/url] - Credit Voiture, emprunter 4000 euros
Ronweix - 2017-09-21  04:42:53
 Priligy Nebenwirkungen [url=http://cialtobuy.com ]buy cialis[/url] Erectile Pills Over The Counter
Cialis Euroclinix Levitra Al Miglior Prezzo
Cytotec Pas Cher buy cialis Teilbar Levitra Rezeptfrei
LarExaf - 2017-09-21  03:30:48
 Buy Levitra Online In Canada [url=http://cialtobuy.com ]cialis[/url] Green Line Phmcy
Equivalente Levitra
Lasix Online Pharmacy cialis Cialis Generique Pas Cher En France
DavidSAh - 2017-09-21  02:47:07
 [url=http://sporteuro.fr/2016/08/14/serge-aurier-periscope-se-ble-jai-droit-daller-recuperer/]led tv apk [/url],[url=http://www.tierarzt-hilpoltstein.de/wp/it-uses-a-dictionary-of-over-200-latin-words/]iptv apk [/url],[url=http://www.werkskultur.de/drama-stehplatze-was-kommt-in-zukunft/]kodi 15.2 apk [/url],[url=https://blogs.deusto.es/strategy/2017/02/]psiphon apk [/url],[url=http://www.tomeknowicki.de/natur/baum1/]n64oid apk [/url]

drastic ds emulator full apk , pixel gun 3d hack apk , waze apk , apk pokemon go , hitman sniper apk
Ronweix - 2017-09-20  23:29:01
 Propecia Generique Avis [url=http://cialtobuy.com ]buy cialis[/url] Worked For Me Propecia Finasteride
Viagra Schweiz Cialis Was Beachten
Cialis 5 Mg Collaterali cheap cialis Buy Amoxicillin For Dogs
Wdgoe42 - 2017-09-20  22:06:18
 gove
ment hospital near me signs of an std in men
viagra without a doctor prescription sti infections list
generic viagra without a doctor prescription
red cross first aid
http://viagrawithoutdoctorusa.com - viagra without a doctor prescription sign and symptoms of std disease
HenryEmasp - 2017-09-20  21:26:46
 kindhearted site [url=https://rentaremotecomputer.com/]rent[/url]
Jamesgom - 2017-09-20  20:57:38
 Привет всем!
Нашел Интересные новости на этом сайте: http://okaybro.ru :
[url=http://okaybro.ru/foto-prikoly-interesnoe/1083-zhizn-v-stile-dukley-gardens.html] Жизнь в стиле Dukley Gardens [/url]
[b] Мегхалая — самое влажное место на Земле [/b] http://okaybro.ru/foto-prikoly-interesnoe/815-meghalaya-samoe-vlazhnoe-mesto-na-zemle.html
http://okaybro.ru/foto-prikoly-interesnoe/5575-povsednevnaya-zhizn-v-palestine.html
http://okaybro.ru/foto-prikoly-interesnoe/572-ukrali-dve-dyuzhiny-avtobusnyh-ostanovok-za-noch.html
Miguzese - 2017-09-20  19:22:54
 Metformin Without Prescription [url=http://cialtobuy.com ]cialis[/url] Can You Buy Zithromax In Stores
Viagra Original Pas Cher
Buy Amoxil Without Prescription cialis price Priligy Eli Lilly
SidneyJut - 2017-09-20  12:41:32
 Приветствую всех!
Нашел Прикольные фотки на этом сайте: http://wozap.ru :
[url=http://wozap.ru/foto-prikoly-interesnoe/4204-krupneyshiy-neftehimicheskiy-kompleks-strany.html] Крупнейший нефтехимический комплекс страны [/url]
[b] Линдси Лохан в Hunger Magazine [/b] http://wozap.ru/foto-prikoly-interesnoe/3226-lindsi-lohan-v-hunger-magazine.html
http://wozap.ru/foto-prikoly-interesnoe/5417-strana-v-kotoroy-ne-nuzhno-vozvraschat-kredity.html
http://wozap.ru/foto-prikoly-interesnoe/1368-kak-olushi-lovyat-rybu-u-beregov-shetlandskih-ostrovov.html
DennisInnot - 2017-09-20  11:56:31
 [b]аренда квартир в москве без посредников на длительный срок от хозяина #974[/b]


[url=http://bit.ly/2uFjHjS][IMG]http://i95.fastpic.ru/big/2017/0809/03/07771425d0f078eb13eecf6dcd658403.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]


























Москваобъявления об аренде квартир, размещенные ведущимиквартира в аренду — Юго-Западная метро Никулинская 27, Москва Предлагается в аренду на длительный срок, двухкомнатная квартира, по адресу: ул.
4-ком квартира в центре Москвы.ID 400-51 м.Вы можете снять жильё на Ленинградском пр-теметро Динамо в Москве на
Снять комнату в Перми - Cнять квартиру, комнату без посредников Санкт-Петербург, Москва. Аренда жилья без комиссии.Сдам комнату в 2-комнатной квартире ул. Чернышевского 10. От собственника. 6500 рублей в Ул.Вавилова(район. Гознак,ДКЖ).ОплатаРАНЬШЕ757677; 78; 7980
Главная База недвижимости Аренда квартир Загородные дома Земельные Москва, Дубнинская улица, д.40, (499) 900-81-22, пн-пт 8:30-19:30
Москва, г. Московский, 1 микрорайон, д. 22А на постоянную работу Квартира находится в Город Парке на улице Бианки на 1 этаже.Сдам комнату в трех комнатной квартиреТел. 8-925-849-75-50 Юлияс нужным вам радиусом и геопозицией, инстаграмм,фейсбук,яндекс,гугл,вконтакте и .
На этой страничке вы найдёте информацию как снять квартиру в Оставьте контактный номер, я бы хотел снять с 16 по 19. на двоихотдохнула так еще и в тишине после москвы для нее это просто рай былЯ сдаю 1-комнатную квартиру в Батуми за 20 долларов в сутки,по адресу ул.
Метро Деловой центр снять комнату в Москве Метро Динамометро 202 снять квартиру метро щелковская 186 снять квартиру метрометро университет 63 снять комнату метро войковская 63 снять
Москва; Города России Такие рекламные площадки как циан не позволяют простому собственнику или клиентуАлтуфьево 10 минут пешком, проживание без хозяев, СТРОГО 1-2ФОТО ПО ЗАПРОСУ.сдам на длительный срок не большую, но уютную квартиру со всей91929394
Снять квартиру или комнату в Москве у метро Фили - Cнять квартиру, комнату без посредников Москва, декабрь 1941 г. ( фото ниже ) 9 октября 1941 г.
2к квартира на Ленинградский пр-кт 62 к 3, 52 м 12 000 руб. р-н Дзержинский. +7 (905) 132-98-13Сдаю мебелированную двухкомнатную квартиру от собственника без посредников (86 кв м). Потолки 3м Два санузла ( новый ремонт, новая ванна, раковины, с читать далее Снять квартиру в Москве.
Сдам комнату без посредника и без подселения,от метро 2 минуты пешком.09:3921:54Сдаю двухкомнатную квартиру в новостройке на длительный Ищете базу циан недвижимость без посредников в Москве? Напрасно! У нас квартиры напрямую от хозяев! Сними
Выбраны предложения по запросу: снять квартиру на Кропоткинской в Район: Хамовники (ЦАО)Обыденский 2-й пер 13, Этаж 34, общая пл.
База сдаваемых в аренду квартирпредложения от собственников. Снять квартиру в аренду без посредников в Москве. Поиск по базе данных накухня: 35 м2Москва, район Бирюлево Восточное, Бирюлевская ул., 58К3.
Аренда квартир посуточно в районе проспект Вернадского в Москве без Показать на карте. фото 1комн. квартира Москва Коштоянца 31. 23
в Москве у метро Марьино - Cнять квартиру, комнату без посредников Сдам квартиру 2 комнатную,все необходимое в квартире есть,метроБез посредников 38 000 рублей в месяц плюс коммунальные платежи, приСдам 2-х комнатную квартиру в Москве, 5 минут пешком от метро Братиславская,
1к квартира на Мичурина 5, 40 м, 914 эт. 5. 9 500 руб.+7 (983) 053-98-13. Кировский Риелторов, просьба не беспокоить! 1к квартира наСДАМ 1-к.квартиру. Wi-FiБез переплат агентам! НовыйСнять квартиру в Москве.
Объявления об аренде квартир рядом с метро Юго-Западная. ЦИАН - самые свежие и актуальные1-комнатная26 Бакинских Комиссаров, 12к5.
Хотели бы снять вторичную квартиру рядом с метро Царицыно? Портал недвижимостипредлагает более 825 объявлений о База недвижимостиСнять квартиру в Москве; Царицыно метро+7 (968) 470-17-XX.
51, 1, Четверг, , 20:24. Тема: КОЙКО-МЕСТО в общежитиипосуточно в Москве. Аренда квартиры на сутки в городе Москва Снять комнату в москве без посредников недорого Москва. Строго славян.
Более 30 предложений снять комнату у метро Университет в Москве, цены в базе вторичного120 кв.м., кухня 15 кв.м., интернет, лифт, вся мебель, ст.
Программа по сносу хрущевок сдержит рост цен на жилье в Москве.Средняя стоимость аренды однокомнатной квартиры - чуть менее 15 тысяч рублей.16:18Что происходит с ценами на жилье: Новостройки
Жителям Москвы и Петербурга новое жилье в городе уже не по карману По оценкам аналитиков Итаки, доля областных сделок за последнийНа рынок аренды все чаще попадают элитные квартиры, которыеэто трехкомнатные квартиры с двумя спальнями площадью 95110 кв. м


Arenda24 - чистые и не прокуренные квартиры посуточно в Запорожье со свежим ремонтом, аренда без посредников ул. Школьная, 13. 400 грн в сутки.
Аренда квартир, комнат в Москве Сдается однокомнатная квартира,хороший ремонт, вся мебель и техника. Метраж-33 . Этаж-89 Цена-35000 .Комиссия -50 %.Депозит разбивается.
Снять квартиру в (Москва) без посредников или с помощью агентств Характеристики: Кухня 9, Жилая 32. Описание: Квартира с ремонтом( пол-ламинат, в санузле- плитка, застекленный балкон).
Cнять комнату в Москве без посредников. + Подать объявление. Категория. Совместная аренда жилья Жилье бесплатно Комнаты Квартиры и дома Общежитияхостелы Сдам комнату. Руслан, 24. Москва м. Царицыно
Недвижимость Москвы. Аренда квартир в Москве. Царицыно Сдам в аренду двухкомнатную квартиру. Москва г, ЮАО, Царицыно. Бакинская ул, 27.
Снять квартиру у метро Фили можно на 10% дешевле среднерыночной стоимости по столице. К тому же этот район отличается развитой инфраструктурой и отличным транспортным сообщением 20 тыс.
База посуточных однокомнатных квартир возле метро ВДНХ Нашлось 34 предложений. тип. Выберите г. Москва. Звездный бульвар, 10. м. ВДНХ.
Москва, ЗАО, район Раменки, м. Проспект Вернадского, ул. Удальцова, 46. 3-комнатная квартира, с евроремонтом, общая Снять однушку метро Проспект Вернадского Аренда двушки метро Проспект Вернадского Сдача в наем трешки
На ЦИАНе квартиры в аренду в Москве: актуальные предложения, проверенная база недвижимости комиссия 65%. без залога. 1-комнатная Сдаю квартиру в Москве.
Аренда без посредников - на "Аренда Без Агента". доска объявлений по аренде недвижимости Размещено: 27 мая 2016 г. в 22:29. г. Москва. 910 Молодая семейная пара снимет 1 комнатную квартиру без посредников.
- Недвижимость Москвы и Подмосковья мкр. Белая дача 51 Котельники 1-ком. кв. 27 м 8 000 Рубмесяц. Арендовать квартиру в Котельниках Квартиру снять в Котельниках Снять квартиру без посредников в Котельниках Арендовать
Более 574 объявления по аренде квартир и комнат в Москве без посредников: удобный фильтр, поиск по карте города 11 Октября 11:29 Сдам в аренду отдельную комнату.
Снять квартиру в городе Москва Наш проект дает возможность недорого подобрать и снять на длительный срок любое жилье: одно-, двух-, трех-, четырехкомнатную квартиру, комнату 27 000рмес. Узнать детали.
Аренда квартир, снять квартиру в Москве. Показать на карте 1-комн. квартира, м. Петровско-Разумовская 30 тыс. руб.
Сдаем комнату, 80 кв. м. Москва, стоимость аренды 12000 руб без посредников. Сдаю комнату в 3-х комнатной квартире в частном секторе 25 000 руб.мес. Аренда 2 комнатной квартиры на длительный срок, Москва 25000 руб.
Аренда однокомнатных квартир у метро Выхино. Снять квартиру в Москве Сдается 1-комнатная квартира. г. Москва. Выхино (13 мин. пешком).
Донского м. Бунинская аллея м. Варшавская м. ВДНХ м. Владыкино м. Водный стадион м. Войковская м. Волгоградский проспект м Сдаю посуточно 1к квартиру в центре Москвы, без посредников Мы знаем где снять квартиру в Москве.
Чтобы снять квартиру посуточно в Марьино, не нужно далеко ходить, достаточно воспользоваться нашим сайтом ул.Братиславская,Комната посуточно в Москве 2 Братиславская , д.68 Не дорого!
It has 41 backlinks. Cian.ru has 60% seo score Недвижимость Или Снять Недвижимость ЦИАНбаза недвижимости в МосквеПродажа, аренда квартир и другой недвижимости.


Похожие ключи:
снять квартиру в москве метро 1905 года
снять квартиру дыбенко москва
снять квартиру в москве метро аэропорт
снять квартиру в москве район аэропорт
снять квартиру в москве в люберцах
аренда квартир в москве яндекс
снять квартиру в москве отзывы
снять квартиру в москве академика королева
аренда квартир москва шереметьево
снять квартиру в москве район выхино
снять комнату в москве посуточно недорого без посредников
снять квартиру в москве курский вокзал
снять квартиру посуточно в москве без посредников
снять квартиру в москве ясенево
снять квартиру в москве на новый год 2017
снять комнату в москве без посредников и агенства
снять двухкомнатную квартиру в москве цена
снять квартиру в москве по часам
снять квартиру в москве большая академическая
снять комнату в москве посуточно без посредников
снять квартиру в москве ул. веерная
снять квартиру в москве через риэлтора
снять 1 комнатную квартиру в москве выхино
снять квартиру в москве измайлово
снять квартиру в москве ювао
аренда комнат в москве от хозяев


Также рекомендуем к просмотру:
[url=http://snt-ks2.ru/forum/viewtopic.php?f=2&t=600037]снять комнату в москве без посредников от хозяина дешево #427[/url]
[url=http://memberentrypoint.com/phpBB3/phpBB3/viewtopic.php?f=9&t=1213340]снять вип квартиру в москве посуточно #375[/url]
[url=http://startrekthelarp.mattwimmer.net/TheForum/showthread.php?tid=59564]снять квартиру в москве ясенево #008[/url]
[url=http://feelgoodfarminc.com/forum/viewtopic.php?f=2&t=84507]снять квартиру херсон без посредников посуточно #355[/url]
[url=http://forum.technicaldiving.ie/index.php/topic,323425.new.html#new]снять квартиру на сутки в москве без посредников #551[/url]
[url=http://feelgoodfarminc.com/forum/viewtopic.php?f=2&t=83852]снять квартиру в москве без посредников от собственника #665[/url]
[url=http://nadia.sait-a.gr/index.php/forum/suggestion-box/542289-015#542601]снять квартиру в москве ярославский район #015[/url]
[url=http://nadia.sait-a.gr/index.php/forum/suggestion-box/543651-395#543963]посуточная аренда комнат в москве без посредников #395[/url]
[url=http://forum.myronivkanews.com/index.php?topic=82477.new#new]аренда элитных квартир посуточно в москве #483[/url]
[url=https://animeotk.co.uk/smf/index.php?topic=972825.new#new]аренда однокомнатной квартиры в москве без посредников #604[/url]
[url=https://kaplanfx.com/index.php/forum/kaplanfx-services/26344-419#26345]сдам двухкомнатную квартиру в москве без посредников #419[/url]
[url=http://forum.infoterapisspa.com/Thread-%D0%B0%D1%80%D0%B5%D0%BD%D0%B4%D0%B0-%D0%BA%D0%B2%D0%B0%D1%80%D1%82%D0%B8%D1%80-%D0%B2-%D0%BC%D0%BE%D1%81%D0%BA%D0%B2%D0%B5-%D0%BE%D1%82-%D1%85%D0%BE%D0%B7%D1%8F%D0%B5%D0%B2-879]аренда квартир в москве от хозяев #879[/url]













































































































































.
Haroreab - 2017-09-19  22:34:25
 New Keflex Oral Antibiotic [url=http://cialtobuy.com ]cialis[/url] Kamagra Paypal
Viagra Tipi
Propecia Adverse Effects Swelling Of The Lips cialis Amoxicillin With Milk Products
Здраствуйте! Вас интересуют клиентские базы данных для продажи Ваших товаров и услуг? Ответ на Email: beltyukov.grigorij@mail.ru - 2017-09-19  22:34:13
 Здраствуйте! Вас интересуют клиентские базы данных для продажи Ваших товаров и услуг? Ответ на Email: beltyukov.grigorij@mail.ru
Здраствуйте! Вас интересуют клиентские базы данных для продажи Ваших товаров и услуг? Ответ на Email: beltyukov.grigorij@mail.ru http://w.w/
Здраствуйте! Вас интересуют клиентские базы данных для продажи Ваших товаров и услуг? Ответ на Email: beltyukov.grigorij@mail.ru - 2017-09-19  21:48:45
 Здраствуйте! Вас интересуют клиентские базы данных для продажи Ваших товаров и услуг? Ответ на Email: beltyukov.grigorij@mail.ru
Здраствуйте! Вас интересуют клиентские базы данных для продажи Ваших товаров и услуг? Ответ на Email: beltyukov.grigorij@mail.ru http://w.w/
Здраствуйте! Вас интересуют клиентские базы данных для продажи Ваших товаров и услуг? Ответ на Email: beltyukov.grigorij@mail.ru - 2017-09-19  17:50:14
 Здраствуйте! Вас интересуют клиентские базы данных для продажи Ваших товаров и услуг? Ответ на Email: beltyukov.grigorij@mail.ru
Здраствуйте! Вас интересуют клиентские базы данных для продажи Ваших товаров и услуг? Ответ на Email: beltyukov.grigorij@mail.ru http://w.w/
Jeffpoonia - 2017-09-19  15:14:21
 Alte
ative Med To Amoxil [url=http://cialtobuy.com ]cialis[/url] Propecia Vergessen Einzunehmen
Zithromax Side Effects Sleep
Acheter Du Viagra Sur Paris En Pessac cialis Priligy With Viagra
Yexctl - 2017-09-19  13:55:54
 online cpr and first aid family health insurance plans
viagra without a doctor prescription 2016 medical school rankings
viagara without prescription
health insurance online
[url=http://www.viagrawithoutdoctorvisit.org/]viagra without a doctor prescription[/url]
first aid train the trainer
ErnestWag - 2017-09-19  12:16:43
 Hello. And Bye.
<<[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] >>
*v komentářich nesmíte používat sprostá slova a odkazy!!!Děkuji za pochopeni.