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

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

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 13.07.2018, 11:18   #21
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
Сообщение от spoon100500 Посмотреть сообщение
Так работает
Вы же выше написали, что не работает, если не выбран не один цвет?!
Так работает или не работает?

ещё раз повторю - покажите код, где Вы присваиваете $cat.


Цитата:
Сообщение от spoon100500 Посмотреть сообщение
Код:
foreach*($cat*as*$key)*{
if*($key[0]*==*0){$rol*=*'WHERE*color*=*"0"';*include*'tkani/gor_tkani.php';}
if*($key[0]*==*1){$rol*=*'WHERE*color*=*"1"';*include*'tkani/gor_tkani.php';}
}
Это мусор. Так писать нельзя.


Цитата:
Сообщение от spoon100500 Посмотреть сообщение
но показывает только первое выбранное значение
Я задавал Вам вопрос, на который Вы не ответили.
Повторю его:
Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
начиная с того, что Вы выбрали чекбоксы для выбора цвета.
и что должно быть, если пользователь отметил "птичкой", скажем,
"красный" цвет, "желтый" цвет и "синий".
Какие цвета должны выбраться из БД ?


Продолжаем играть в партизан? Развиваем навыки телепатии?
Serge_Bliznykov вне форума Ответить с цитированием
Старый 13.07.2018, 11:23   #22
spoon100500
Форумчанин
 
Аватар для spoon100500
 
Регистрация: 14.10.2016
Сообщений: 406
По умолчанию

Разметка filter_gor.php
PHP код:
<div id="color" class="col-3 text-center">
  <
input type="checkbox" name="cat[]" value="0" id="gor-1">
  <
label for="gor-1"><p>красный</p></label>
  
  <
input type="checkbox" name="cat[]" value="1" id="gor-2">
  <
label for="gor-2"><p>оранжевый</p></label>

  <
input type="checkbox" name="cat[]" value="2" id="gor-3">
  <
label for="gor-3"><p>желтый</p></label>
  
  <
input type="checkbox" name="cat[]" value="3" id="gor-4">
  <
label for="gor-4"><p>зеленый</p></label>
  
  <
input type="checkbox" name="cat[]" value="4" id="gor-5">
  <
label for="gor-5"><p>синий</p></label>
  
  <
input type="checkbox" name="cat[]" value="5" id="gor-6">
  <
label for="gor-6"><p>сиреневый</p></label>

  <
input type="checkbox" name="cat[]" value="6" id="gor-7">
  <
label for="gor-7"><p>черный</p></label>
  
  <
input type="checkbox" name="cat[]" value="7" id="gor-8">
  <
label for="gor-8"><p>белый</p></label>

  <
input type="checkbox" name="cat[]" value="8" id="gor-9">
  <
label for="gor-9"><p>бежевый</p></label>
  
  <
input type="checkbox" name="cat[]" value="9" id="gor-10">
  <
label for="gor-10"><p>серый</p></label>
  
  <
input type="checkbox" name="cat[]" value="10" id="gor-11">
  <
label for="gor-11"><p>коричневый</p></label>
</
div
Обработчик gor.php
PHP код:
<?php
parse_str
($_POST['name'],$cat);
foreach (
$cat as $key) {
if (
$key[0] == 0){$rol 'WHERE color = "0"'; include 'tkani/gor_tkani.php';}
if (
$key[1] == 1){$rol 'WHERE color = "1"'; include 'tkani/gor_tkani.php';}
}

?>
js файл
Код:
$(document).on('click', 'input[id*="gor"]', function() {
  str1 = $('#color input[name="cat[]"]').serialize();
  $.ajax({
    type: 'POST',
    url: 'gor.php',
    data: {name:str1},
    success: function(svet_rezult) {$("#block-tovar-grid .res").html(svet_rezult);}
  });
});
Еду медленно, но верно!

Последний раз редактировалось spoon100500; 13.07.2018 в 11:26.
spoon100500 вне форума Ответить с цитированием
Старый 13.07.2018, 11:36   #23
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

1) Где присвоение переменной $cat ?
parse_str я проглядел. извините.



2) что должно быть, если пользователь отметил "птичкой", скажем,
"красный" цвет, "желтый" цвет и "синий".
Какие цвета должны выбраться из БД ?
Serge_Bliznykov вне форума Ответить с цитированием
Старый 13.07.2018, 11:40   #24
spoon100500
Форумчанин
 
Аватар для spoon100500
 
Регистрация: 14.10.2016
Сообщений: 406
По умолчанию

1. Весь файл gor.php
Код:
<?php
parse_str($_POST['name'],$cat);
foreach ($cat as $key) {
if ($key[0] == 0){$rol = 'WHERE color = "0"'; include 'tkani/gor_tkani.php';}
if ($key[1] == 1){$rol = 'WHERE color = "1"'; include 'tkani/gor_tkani.php';}
}

?>
2. Если выбран красный показываем красный, если оранжевый и красны показываем оба, если снимаем галочку с красного то остаются все оранжевые
Еду медленно, но верно!
spoon100500 вне форума Ответить с цитированием
Старый 13.07.2018, 11:42   #25
spoon100500
Форумчанин
 
Аватар для spoon100500
 
Регистрация: 14.10.2016
Сообщений: 406
По умолчанию

Согласно мануалу тут можно присваивать переменную внутри parse_str.
Если проверить cat дампом то показывает массив.
Еду медленно, но верно!

Последний раз редактировалось spoon100500; 13.07.2018 в 11:47.
spoon100500 вне форума Ответить с цитированием
Старый 13.07.2018, 13:06   #26
Baburek
Форумчанин
 
Аватар для Baburek
 
Регистрация: 12.12.2010
Сообщений: 205
По умолчанию

Объясните, пожалуйста, почему нельзя воспользоваться конструкцией:

Цитата:
WHERE column_name IN (value1, value2, ...)
И в чем смысл в массиве делать include одного и того же файла? Только не говорите, что вы таким образом контент страницы генерируете.
Baburek вне форума Ответить с цитированием
Старый 13.07.2018, 13:13   #27
spoon100500
Форумчанин
 
Аватар для spoon100500
 
Регистрация: 14.10.2016
Сообщений: 406
По умолчанию

Цитата:
Сообщение от Baburek Посмотреть сообщение
Только не говорите, что вы таким образом контент страницы генерируете.
Именно)

Через include подключается не только одна страница 'tkani/gor_tkani.php, но в зависимости от условий еще пару.
Еду медленно, но верно!
spoon100500 вне форума Ответить с цитированием
Старый 13.07.2018, 13:50   #28
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

играйтесь:

spoon_test.php:
Код:
<?php

$rol = '';
if(isset($_POST['cat'])){
 $rol = 'WHERE COLOR IN (';
 foreach ((array)$_POST['cat'] as $key) {
       $rol .=  (int)$key.',';
 }
 $rol = substr($rol, 0, -1).' )';
}
else {
 $rol = 'WHERE 1=1';
}

$result = "need SQL query with : ".$rol;
exit(json_encode($result));

?>
код для проверки:
Код:
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<title>Тест</title>
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script type="text/javascript">

$(document).ready(function(){
  $(document).on('click', 'input[id*="gor"]', function() {
    str1 = $('#color input[name="cat[]"]').serialize();
    $.ajax({
      type: 'POST',
      url: 'spoon_test.php',
      data: str1,
      success: function(svet_rezult) {
        $("#block-tovar-grid").html(svet_rezult);
      }
    });
  });
});    
</script>
<style>
label {
    float: none; /* if you had floats before? otherwise inline-block will behave differently */
    display: inline-block;
    vertical-align: middle;    
}
</style>
</head>
<body>

<div id='block-tovar-grid'>
<i>Тут результат, который возвращает AJAX</i>
</div>
<hr>


<div id="color" class="col-3 text-center">
  <input type="checkbox" name="cat[]" value="0" id="gor-1">
  <label for="gor-1"><p>красный</p></label>
  
  <input type="checkbox" name="cat[]" value="1" id="gor-2">
  <label for="gor-2"><p>оранжевый</p></label>

  <input type="checkbox" name="cat[]" value="2" id="gor-3">
  <label for="gor-3"><p>желтый</p></label>
  
  <input type="checkbox" name="cat[]" value="3" id="gor-4">
  <label for="gor-4"><p>зеленый</p></label>
  
  <input type="checkbox" name="cat[]" value="4" id="gor-5">
  <label for="gor-5"><p>синий</p></label>
  
  <input type="checkbox" name="cat[]" value="5" id="gor-6">
  <label for="gor-6"><p>сиреневый</p></label>

  <input type="checkbox" name="cat[]" value="6" id="gor-7">
  <label for="gor-7"><p>черный</p></label>
  
  <input type="checkbox" name="cat[]" value="7" id="gor-8">
  <label for="gor-8"><p>белый</p></label>

  <input type="checkbox" name="cat[]" value="8" id="gor-9">
  <label for="gor-9"><p>бежевый</p></label>
  
  <input type="checkbox" name="cat[]" value="9" id="gor-10">
  <label for="gor-10"><p>серый</p></label>
  
  <input type="checkbox" name="cat[]" value="10" id="gor-11">
  <label for="gor-11"><p>коричневый</p></label>
</div>  

</body>
</html>
если непонятно, то в вашем случае должно быть в обработчике что-то вроде:


Код:
<?php

$rol = '';
if(isset($_POST['cat'])){
 $rol = 'WHERE COLOR IN (';
 foreach ((array)$_POST['cat'] as $key) {
       $rol .=  (int)$key.',';
 }
 $rol = substr($rol, 0, -1).' )';
}
else {
 $rol = 'WHERE 1=1';
}
include 'tkani/gor_tkani.php';
?>
Serge_Bliznykov вне форума Ответить с цитированием
Старый 13.07.2018, 15:58   #29
spoon100500
Форумчанин
 
Аватар для spoon100500
 
Регистрация: 14.10.2016
Сообщений: 406
По умолчанию

Добрые люди подсказали обработчик))
PHP код:
parse_str($_POST['name'],$cat);
$rol '';
if(!empty(
$cat)) {
$rol "WHERE color IN(".implode(',',$cat['cat']).")";
}
include
'tkani/gor_tkani.php'
Еду медленно, но верно!
spoon100500 вне форума Ответить с цитированием
Старый 13.07.2018, 16:08   #30
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
Сообщение от spoon100500 Посмотреть сообщение
Добрые люди подсказали обработчик))
ок.


а что, мой код Вас чем-то не устроил?
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Подскажите с кодом, плиз! spoon100500 JavaScript, Ajax 25 16.10.2016 14:27
подскажите с кодом: Напишите программу, принимающую на вход текстовый CSV-файл с таблицей и преобразующую эту таблицу в XML формат dima4239 Паскаль, Turbo Pascal, PascalABC.NET 20 01.10.2015 13:20
. Подскажите пожалуйста как исправить ошибку с кодом 18. abatfarda PHP 18 30.03.2015 00:04
Подскажите, что не так с кодом Grisha248 Помощь студентам 2 24.05.2009 16:41
Подскажите с кодом процедуры ButtonClick KARUSHEV Помощь студентам 3 23.03.2009 14:01