Как изменить несколько запросов флажок на несколько выбранных jQuery?

У меня есть несколько запросов флажок, как показано ниже

  <span style="width:276px;display:inline-block;">&nbsp;<input type="checkbox" name="check_list[]" value="sub_category_id = '1''">Name1</span>

<span style="width:276px;display:inline-block;">&nbsp;<input type="checkbox" name="check_list[]" value="sub_category_id = '2'">Name2</span>

<span style="width:276px;display:inline-block;">&nbsp;<input type="checkbox" name="check_list[]" value="sub_category_id = '3'">Name3</span>

<span style="width:276px;display:inline-block;">&nbsp;<input type="checkbox" name="check_list[]" value="sub_category_id = '4'">Name4</span>

затем

 <?php
$names = implode(' or ', (array)$_POST['check_list'.$i]);
echo $names;
?>

Я получил часть моего запроса.

sub_category_id = '1'' or sub_category_id = '2' or sub_category_id = '3' or sub_category_id = '4'

Используя выбранный Jquery, я могу получить данные MySQL (Name1, Name2, Name3, Name4), как показано ниже:

   <select name="sub_category_id[]" id="sub_category_id[]" multiple     class="chosen-select" tabindex="8">
<option value="">Selecione...</option>
<?php foreach ($arrEstados as $value => $name) {
echo "<option value='{$value}'>{$name}</option>";
}?>
</select>

$names = $_POST['sub_category_id'];
$query=implode('sub_category_id=', $names);
echo $query;

Но «или» отсутствует. У меня нет хороших навыков в PHP, поэтому я спрашиваю: это правильный способ получить мой запрос? Я не использую PDO или MySQL.

1

Решение

измените HTML-элемент select, чтобы выполнить следующие действия:

<select name="check_list[sub_category_id][]" id="sub_category_id[]" multiple     class="chosen-select" tabindex="8">
<option value="">Selecione...</option>
<?php
foreach ($arrEstados as $value => $name) {
echo "<option value='{$value}'>{$name}</option>";
}
?>
</select>

сделав это, вы создадите массив в вашем $ _POST:

$_POST => Array
(
[check_list] => Array
(
[sub_category_id] => Array
(
[0] => 2
[1] => 3
)

)

)

затем измените ваш PHP следующим образом:

<?php
$names = isset($_POST['check_list']) && isset($_POST['check_list']['sub_category_id']) ? $_POST['check_list']['sub_category_id'] : NULL;
$query = "SELECT * FROM tablename WHERE ";
if(!is_null($names)){
foreach($names as $i => $name){
if($i !== 0){
$query .= " OR ";
}
$query .= "sub_category_id = '$name'";
}
}
echo($query);
//Output: SELECT * FROM tablename WHERE sub_category_id = '2' OR sub_category_id = '3'
}
?>

вам может потребоваться изменить запрос в соответствии с вашим приложением, но это поможет вам в правильном направлении.

0

Другие решения

Как Мартин предлагает де http://www.tutorialspoint.com/mysql/mysql-in-clause.htm Оказывается простой способ решить это. Вот что я сделал:

 <select chosen still the same...>

$sub_category_1 = $_POST['sub_category_id'];
$query=implode(',', $sub_category_1);

$sql = "Select * from table WHERE sub_category_id IN($query)";
0

По вопросам рекламы [email protected]