Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > SQL, базы данных
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.03.2019, 13:48   #1
Flomaster281
 
Регистрация: 14.03.2019
Сообщений: 3
По умолчанию Немного не умею присваивать переменные на php sql

Нашёл такую фильтрацию, и вместо значений поставил свои данные, которые берутся из бд. Данные берутся, но фильтрация не работает из за того, что не знаю как присвоить им переменные, ведь данных в бд не мало

Код:
<html>
<style>
#items {
margin-top: 100px;
}
.item {
float: left;
width: 50px;
height: 50px;
margin: 1px;
}
.red { background: #cf2624; }
.blue { background: #2478cf; }
.green { background: #24cf7c; }
.orange { background: #cf7c24; }
.yellow { background: #f1e81f; }
</style>
<body>

<select id="filter">
<option value="item">все</option>
<option value="red">красный</option>
<option value="blue">синий</option>
</select>
<div id="items">
<div class="item red">1</div>
<div class="item blue">2</div>
</div>
<script type="text/javascript">
var filter_select_el = document.getElementById('filter');
var items_el = document.getElementById('items');

filter_select_el.onchange = function() {
console.log(this.value);
var items = items_el.getElementsByClassName('item');
for (var i=0; i<items.length; i++) {
if (items[i].classList.contains(this.value)) {
items[i].style.display = 'block';
} else {
items[i].style.display = 'none';
}
}
};
</script>
</body>
</html>
Вот мой код


Код:
<html>
<body>
<select id="filter">
<option value="item">Все</option>
<?php
include_once("db.php");
$result = mysql_query(" SELECT DISTINCT nazvanie
FROM tablica 
");
while($row = mysql_fetch_assoc($result))
{?> 
<option value="????????????????????????"><?php echo $row['nazvanie']; ?></option>
<?php 
}?>
</select> 
<div id="items ">
<?php
include_once("db.php");
$name = "item ";
$result = mysql_query(" SELECT nazvanie
FROM tablica 
");
while($row = mysql_fetch_assoc($result))
{?>
<div class="????????????????????????">
<input type="text" name="nazvanie" value="<?php echo $row['nazvanie']; ?> " readonly="readonly">
</div>
<?php 
}?>
</div> 

<script type="text/javascript">
var filter_select_el = document.getElementById('filter');
var items_el = document.getElementById('items');

filter_select_el.onchange = function() {
console.log(this.value);
var items = items_el.getElementsByClassName('item');
for (var i=0; i<items.length; i++) {
if (items[i].classList.contains(this.value)) {
items[i].style.display = 'block';
} else {
items[i].style.display = 'none';
}
}
};
</script>
</body>
</html>

______________________
Используйте тег [CODE] (кнопка [CODE] в форме сообщения) при вставке кода на форум. Подробнее в FAQ

Последний раз редактировалось Serge_Bliznykov; 14.03.2019 в 13:58.
Flomaster281 вне форума Ответить с цитированием
Старый 14.03.2019, 14:34   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
Сообщение от Flomaster281 Посмотреть сообщение
Данные берутся, но фильтрация не работает из за того, что не знаю как присвоить им переменные, ведь данных в бд не мало
Если данных в БД реально "немало", то такой способ будет неудобен для использования.

Но, по сути, вам нужен какой-то идентификатор, которым записи отличаются друг от друга.
вот его и нужно выводить в option value="идентификатор" и, соответственно, его же выводить в дополнительное имя класса <div class="item идентификатор">
Serge_Bliznykov вне форума Ответить с цитированием
Старый 14.03.2019, 14:39   #3
Flomaster281
 
Регистрация: 14.03.2019
Сообщений: 3
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
Если данных в БД реально "немало", то такой способ будет неудобен для использования.

Но, по сути, вам нужен какой-то идентификатор, которым записи отличаются друг от друга.
вот его и нужно выводить в option value="идентификатор" и, соответственно, его же выводить в дополнительное имя класса <div class="item идентификатор">

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
Но, по сути, вам нужен какой-то идентификатор
Да, понимаю. Извиняюсь, не подскажете как правильно это можно прописать?
Flomaster281 вне форума Ответить с цитированием
Старый 14.03.2019, 15:57   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
Сообщение от Flomaster281 Посмотреть сообщение
Да, понимаю. Извиняюсь, не подскажете как правильно это можно прописать?
ну, я же не знаю, что представляет собой ваше поле nazvanie в вашей таблице.

ну, чисто формально, попробуйте так:
Код:
<html>
<body>
<select id="filter">
<option value="item">Все</option>
<?php
include_once("db.php");
$result = mysql_query(" SELECT DISTINCT nazvanie FROM tablica");
while($row = mysql_fetch_assoc($result))
{?> 
<option value="<?=$row['nazvanie']?>"><?=$row['nazvanie']?></option>
<?php 
}?>
</select> 
<div id="items ">
<?php
$result = mysql_query("SELECT nazvanie FROM tablica");
while($row = mysql_fetch_assoc($result)){?>
<div class="item <?=$row['nazvanie']?>">
<input type="text" name="nazvanie" value="<?=$row['nazvanie']?>" readonly="readonly">
</div>
<?php 
}?>
</div> 

<script type="text/javascript">
var filter_select_el = document.getElementById('filter');
var items_el = document.getElementById('items');

filter_select_el.onchange = function() {
console.log(this.value);
var items = items_el.getElementsByClassName('item');
for (var i=0; i<items.length; i++) {
if (items[i].classList.contains(this.value)) {
items[i].style.display = 'block';
} else {
items[i].style.display = 'none';
}
}
};
</script>
</body>
</html>
Serge_Bliznykov вне форума Ответить с цитированием
Старый 14.03.2019, 20:17   #5
Flomaster281
 
Регистрация: 14.03.2019
Сообщений: 3
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
ну, я же не знаю, что представляет собой ваше поле nazvanie в вашей таблице.

ну, чисто формально, попробуйте так
не работает(. я незнаю. может быть я вообще форму не подходящую выбрал?
Flomaster281 вне форума Ответить с цитированием
Старый 14.03.2019, 22:22   #6
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
Сообщение от Flomaster281 Посмотреть сообщение
не работает(
так и пишет - "не работаю"? Или ошибки выдаёт?
покажите, какая страница отдаётся браузеру (в браузере откройте в инструментах разработчика код страницы, посмотрите, какие ошибки вылезли в консоль, скопируйте сюда код страницы).


Цитата:
Сообщение от Flomaster281 Посмотреть сообщение
я незнаю. может быть я вообще форму не подходящую выбрал?
так Вам виднее. Может ту форму. А может быть, и не ту.
Вы же абсолютно никакой конкретной информации не дали - ни что в таблице, ни что Вы хотите получить (для чего это всё нужно).
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не хочет присваивать имя для переменной в классе-наследнике NataHamster PHP 4 07.12.2015 12:01
Необходимо присваивать значение переменной на 20 сек CHEburaschka Общие вопросы Delphi 2 03.06.2015 10:50
не умею. pascal kadet31 Паскаль, Turbo Pascal, PascalABC.NET 2 02.06.2015 20:24
Когда нужно присваивать.. Writeln(Sum:8:4) ? Erlotaza Общие вопросы Delphi 1 09.03.2012 11:25