Помогите, пожалуйста! Не могу разобраться почему при поиске на сайте Masonry не работает; хотя данные, которые были вбиты в поиске выводит. Если же поиск не использовать, то Masonry работает:
1.php
<form name="search" method="post" action="search.php" class="search">
<input type="search" name="query" placeholder="Поиск" class="input">
<button type="submit" class="ax">Найти</button>
</form>
search.php
<!DOCTYPE html>
<HTML>
<head>
<title> </title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<script src="/js/masonry.pkgd.min.js"></script>
<?php include("bd/Ho_bd.php"); ?>
</head>
<body>
<?php
define('DB_HOST', 'localhost');
define('DB_USER', 'WOW');
define('DB_PASS', '');
define('DB_NAME', 'WOW');
if (!mysql_connect(DB_HOST, DB_USER, DB_PASS)) {
exit('Cannot connect to server');
}
if (!mysql_select_db(DB_NAME)) {
exit('Cannot select database');
}
mysql_query('SET NAMES utf8');
function search ($query)
{
$query = trim($query);
$query = mysql_real_escape_string($query);
$query = htmlspecialchars($query);
if (!empty($query))
{
if (strlen($query) < 3) {
$text = '<p>Слишком короткий поисковый запрос.</p>';
} else if (strlen($query) > 128) {
$text = '<p>Слишком длинный поисковый запрос.</p>';
} else {
$q = "SELECT * FROM Ho WHERE
`images` LIKE '%$query%' OR `title` LIKE '%$query%'
";
$result = mysql_query($q) or die(mysql_error());
if (mysql_affected_rows() > 0) {
$row = mysql_fetch_assoc($result);
$num = mysql_num_rows($result);
$text = '<p>По запросу <b>'.$query.'</b> найдено совпадений: '.$num.'</p>';
while($row=mysql_fetch_array($result))
{
echo
'
<div id="container" class="container">
<?php
$Ho = get_Ho ();
foreach($Ho as $row) : ?>
<div class="item">
<a href="#" class="im"><img src="'.$row['images'].'"</a>
<div class="title"><a href="#" class="title">'.$row['title'].' </a></div>
</div>
<?php endforeach;?>
</div>
';
}
} else {
$text = '<p>По вашему запросу ничего не найдено.</p>';
}
}
} else {
$text = '<p>Задан пустой поисковый запрос.</p>';
}
return $text;
}
?>
<?php
if (!empty($_POST['query'])) {
$search_result = search ($_POST['query']);
echo $search_result;
}
?>
<script type="text/javascript">
var container = document.querySelector('#container');
var msnry = new Masonry(container, {
columnWidth: 325,
itemSelector: '.item',
gutter: 20
});
</script>
</body>
</html>
Ho_bd.php
<?php
function db_connect()
{
$host = 'localhost';
$user = 'WOW';
$pswd = '';
$db = 'WOW';
$connection = mysql_connect ($host, $user, $pswd);
if(!$connection || !mysql_select_db($db, $connection))
{
return false;
}
return $connection;
}
function db_result_to_array($result)
{
$res_array = array();
$count=0;
while ($row = mysql_fetch_array($result))
{
$res_array[$count] = $row;
$count++;
}
return $res_array;
}
function get_Ho ()
{
db_connect();
$query = "SELECT * FROM Ho";
$result = mysql_query($query);
$result = db_result_to_array($result);
return $result;
}
?>
Понимаю, что Masonry будет работать при таком коде:
<a href="#" class="im"><img src="<?= $row['images']?>" /></a>
Но в echo все выводит (Masonry в нем не работает почему-то), когда код записан так:
<a href="#" class="im"><img src="'.$row['images'].'"</a>
Помогите, пожалуйста, чтобы Masonry тоже заработал при поиске