|
|
|
| Привет всем. У меня такой вопрос. Как узнать какие чекбоксы выделены, а потом анализируя выделенные чекбоксы сделать выборку из БД? | |
|
|
|
|
|
|
|
для: RussianPro
(08.04.2012 в 12:06)
| | Напишите в обработчике
<pre>
<?php
print_r($_POST) // или GET, в зависимости от метода, конечно.
?>
</pre>
|
и попробуйте поотправлять форму с разным набором отмеченных чекбоксов. Всё станет ясно=) | |
|
|
|
|
|
|
|
для: Киналь
(08.04.2012 в 12:10)
| | а можно записать в массив все выбранные чекбоксы и сделать выборку из БД по этому массиву? | |
|
|
|
|
|
|
|
для: RussianPro
(08.04.2012 в 12:21)
| | можно
покажите форму с чекбоксами | |
|
|
|
|
|
|
|
для: Valick
(08.04.2012 в 12:23)
| | <form id = "rent-search" action = "" method = "post">
<table style = "width: 100%; margin: 0 auto 20px;">
<tr style = "background: #355548; color: #ffffff; text-align: center;">
<td colspan = "2"><b>Расширенный поиск</b></td>
</tr>
<tr>
<td><b>Тип сделки:</b></td>
<td>
<input type = "radio" name = "deal" value = "Аренда" checked = "checked" />Аренда
<input type = "radio" name = "deal" value = "Продажа" />Продажа
</td>
</tr>
<tr>
<td><b>Тип недвижимости:</b></td>
<td>
<input type = "radio" onclick = "vi('office'), vi('type'), hide('market'), hide('fold')" checked = "checked" name = "type_of_realty" value = "office" />Офисная
<input type = "radio" onclick = "vi('market'), vi('type'), hide('office'), hide('fold')" name = "type_of_realty" value = "market" />Торговая
<input type = "radio" onclick = "vi('fold'), vi('type'), hide('office'), hide('market')" name = "type_of_realty" value = "fold" />Складная
<input type = "radio" onclick = "hide('office'), hide('market'), hide('fold'), hide('type')" name = "type_of_realty" value = "production" />Производственная
</td>
</tr>
<tr id = "type">
<td><b>Тип здания</b></td>
<td>
<div id = "office">
<input type = "checkbox" name = "office1" value = "Офисная, Бизнес-центр класса A" />Бизнес-центр <b>класса A</b><br />
<input type = "checkbox" name = "office2" value = "Офисная, Бизнес-центр класса B+" />Бизнес-центр <b>класса B+</b><br />
<input type = "checkbox" name = "office3" value = "Офисная, Бизнес-центр класса B" />Бизнес-центр <b>класса B</b><br />
<input type = "checkbox" name = "office4" value = "Офисная, Бизнес-центр класса C" />Бизнес-центр <b>класса C</b><br />
<input type = "checkbox" name = "office5" value = "Офисная, Административное здание" />Административное здание<br />
<input type = "checkbox" name = "office6" value = "Офисная, Отдельно стоящее здание" />Отдельно стоящее здание<br />
<input type = "checkbox" name = "office7" value = "Офисная, Жилой дом" />Жилой дом <br />
<input type = "checkbox" name = "office_all" value = "office_all" />Все предложения <br />
</div>
<div id = "market" style = "display: none;">
<input type = "checkbox" name = "market1" value = "Торговая, Магазин" />Магазин<br />
<input type = "checkbox" name = "market2" value = "Торговая, Ресторан, кафе, столовая (общепит)" />Ресторан, кафе, столовая (общепит)<br />
<input type = "checkbox" name = "market3" value = "Торговая, Банк" />Банк<br />
<input type = "checkbox" name = "market4" value = "Торговая, Аптека" />Аптека<br />
<input type = "checkbox" name = "market5" value = "Торговая, Помещение свободного назначения" />Помещение свободного назначения<br />
<input type = "checkbox" name = "market_all" value = "market_all" />Все предложения <br />
</div>
<div id = "fold" style = "display: none;">
<input type = "checkbox" name = "fold1" value = "Складная, Склад класса A" />Скалды <b>класса A</b><br />
<input type = "checkbox" name = "fold2" value = "Складная, Склад класса B+" />Скалды <b>класса B+</b><br />
<input type = "checkbox" name = "fold3" value = "Складная, Склад класса B" />Скалды <b>класса B</b><br />
<input type = "checkbox" name = "fold4" value = "Складная, Склад класса C" />Скалды <b>класса C</b><br />
<input type = "checkbox" name = "fold_all" value = "fold_all" />Все предложения <br />
</div>
</td>
</tr>
<tr>
<td><b>Площадь:</b></td>
<td>
от <input type = "text" name = "sfrom" /> до <input type = "text" name = "sto" /> <b>м<sup>2</sup></b>
</td>
</tr>
<tr>
<td><b>Стоимость:</b></td>
<td>
от <input type = "text" name = "vfrom" /> до <input type = "text" name = "vto" />
</td>
</tr>
<tr>
<td><b>По номеру объекта:</b></td>
<td>№ <input type = "text" name = "id" /></td>
</tr>
<tr>
<td colspan = "2" style = "text-align: right;">
<input type = "reset" value = "Очистить" />
<input type = "submit" name = "rent-search" value = "Искать" />
</td>
</tr>
</table>
</form> | |
|
|
|
|
|
|
|
для: RussianPro
(08.04.2012 в 12:25)
| | Во-первых, пользуйтесь bb-тегом [cоde][/cоde].
Во-вторых, попробуйте вместо market1, market2 и т.д. писать везде market[], это проще. А в обработчике получите массив с элементами $_POST['market'][0], $_POST['market'][1] и так далее.
А в-третьих — всё можно, и в массив записать, и из БД выбрать) Что именно у вас не получается? | |
|
|
|
|
|
|
|
для: RussianPro
(08.04.2012 в 12:25)
| | Во-первых, пользуйтесь bb-тегом [cоde][/cоde].
Во-вторых, попробуйте вместо market1, market2 и т.д. писать везде market[], это проще. А в обработчике получите массив с элементами $_POST['market'][0], $_POST['market'][1] и так далее.
А в-третьих — всё можно, и в массив записать, и из БД выбрать) Что именно у вас не получается? | |
|
|
|
|
|
|
|
для: Киналь
(08.04.2012 в 12:49)
| | В следующий раз обязательно воспользуюсь. Я просто пробую пока, чтобы найти простой способ обработки и выбори. | |
|
|
|
|
|
|
|
для: RussianPro
(08.04.2012 в 12:54)
| | ищете простой способ от противного? т.е. перебрав все остальные способы начав с самого сложного? | |
|
|
|
|
|
|
|
для: Valick
(08.04.2012 в 12:57)
| | кода я сижу продумываю как обработать данные, я всё понимаю что к чему, но на практике я начинаю путаться в собственном коде. поэтому я ищу менее громоздкий код обработчик. | |
|
|
|
|
|
|
|
для: RussianPro
(08.04.2012 в 12:25)
| | почему у вас value = "Складная, Склад класса A" имеет такой вид?
я уж не говорю кто у вас там складная))
по идее в значении value должен находиться id
именование чекбоксов тоже "нерадует" при таком подходе написать более менее универсальный обработчик не получится, придется каждый вариант описывать руками
__
откуда у вас этот код? где вы его взяли? | |
|
|
|
|
|
|
|
для: Valick
(08.04.2012 в 12:52)
| | на ваш взшляд как будет более удобнее? | |
|
|
|
|
|
|
|
для: RussianPro
(08.04.2012 в 12:56)
| | какой литературой вы пользуетесь при изучении РНР?
и зачем выбрали сразу такое громоздкое (сложным его не назовешь) задание, учиться нужно на чём-то попроще чтобы понять принцип | |
|
|
|
|
|
|
|
для: Valick
(08.04.2012 в 13:00)
| | я просмотрел пару видео-уроков о том как создавать регистрацию на сайте и делать выборку всех пользователей. на основе второго попробовал сделать простенький поиск состоящий из одной строки (у меня получилось). вот решил сделать более сложную форму поиска и попробовать её обработать и анализируя полученные данные сделать выборку из БД. | |
|
|
|
|
|
|
|
для: Valick
(08.04.2012 в 12:52)
| | почему у вас value = "Складная, Склад класса A" имеет такой вид?
потому что по value всех чекбоксов которые выбраны я вытаскиваю записи из БД где value выбранного чекбокса равно значению в столбце | |
|
|
|
|
|
|
|
для: RussianPro
(08.04.2012 в 13:24)
| | ну то что вытаскиваете, это хорошо, а вот то что хранится оно там в таком виде это хреново
у вас должна быть отдельная таблица с полями id и name например, где name = "Складная, Склад класса A" (по-русски должно быть на сколько мне известно складская, а не складная) которая связана с основной таблицей по id
___
если хотите чему-то научиться, то бросайте свои (а скорее всего Ж.Попова) видеоуроки и покупайте хорошую книгу | |
|
|
|
|
 294.6 Кб |
|
|
для: Valick
(08.04.2012 в 13:30)
| | у меня есть таблица projects в которой есть поля id - уникальный идентификатор, realty - как раз то поле куда "складная, складн класса А" записывается и ещё много других столбцов. прикрепляю скрин с таблицей | |
|
|
|
|
|
|
|
для: Valick
(08.04.2012 в 13:30)
| | видеокурс очень даже хороший от Михаила Русакова "Создание и раскрутка сайта от А до Я". дело в том что я не до конца изучил PHP т.к. совсем нет времени. я знаю PHP и MySQL только на начальном уровне. | |
|
|
|
|
|
|
|
для: RussianPro
(08.04.2012 в 13:51)
| | видеокурс очень даже хороший
каким вы способом это определили? у вас есть с чем сравнивать?
ходил только что к нему на сайт, очень много "воды"... | |
|
|
|
|
|
|
|
для: Valick
(08.04.2012 в 13:30)
| | если вам не сложно, не могли вы вы написать код-обработчик для моих чекбоксов? | |
|
|
|
|
|
|
|
для: RussianPro
(08.04.2012 в 14:19)
| | честно говоря сложно
для начала надо привести БД в порядок, я так понимаю из видеокурса вы о нормализации "ни сном ни духом"
грубо говоря нужно написать код с нуля от и до... | |
|
|
|
|
|
|
|
для: Valick
(08.04.2012 в 15:24)
| | я так понимаю из видеокурса вы о нормализации "ни сном ни духом"
честно говоря да
что не так в моей БД? | |
|
|
|
|
 1.5 Кб |
|
|
для: RussianPro
(08.04.2012 в 14:19)
| | даже не знаю стоит ли вам выкладывать это
это не рабочий код, он только слегка объясняет принцип сборки запроса
но повторюсь база требует изменений, чтобы грамотно написать обработчик
организация правильной базы - это самая сложная работа, это фундамент вашего проекта | |
|
|
|
|
|
|
|
для: Valick
(08.04.2012 в 12:23)
| | если выбран чекбокс "Все предложения" мне нужно чтобы он принимал значения всех остальных чекбоксов | |
|
|
|
|
|
|
|
для: RussianPro
(08.04.2012 в 12:28)
| | если выбран чекбокс "Все предложения"
обычно делают на JS выбор всех чекбоксов при установке чекбокса "Все предложения"
но можно в обработчике сделать отдельную ветку и игнорировать остальные чекбоксы, если "Все предложения" установлен
и еще вариант заменить на радио кнопку | |
|
|
|
|
|
|
|
для: Valick
(08.04.2012 в 12:35)
| | а как присвоить этому чекбоксу (если он выбран) значения всех остальных? | |
|
|
|
|
|
|
|
для: RussianPro
(08.04.2012 в 12:47)
| | да не значение присвоить, а поставить галочки во все остальные квадратики при помощи JS | |
|
|
|
|
|
|
|
для: Valick
(08.04.2012 в 12:53)
| | спасибо) осталось скрипт написать | |
|
|
|