Php 如何将多个复选框查询更改为多个选定jQuery?
我有一个多复选框查询,如下所示Php 如何将多个复选框查询更改为多个选定jQuery?,php,jquery,mysql,jquery-chosen,Php,Jquery,Mysql,Jquery Chosen,我有一个多复选框查询,如下所示 <span style="width:276px;display:inline-block;"> <input type="checkbox" name="check_list[]" value="sub_category_id = '1''">Name1</span> <span style="width:276px;display:inline-block;"> &l
<span style="width:276px;display:inline-block;"> <input type="checkbox" name="check_list[]" value="sub_category_id = '1''">Name1</span>
<span style="width:276px;display:inline-block;"> <input type="checkbox" name="check_list[]" value="sub_category_id = '2'">Name2</span>
<span style="width:276px;display:inline-block;"> <input type="checkbox" name="check_list[]" value="sub_category_id = '3'">Name3</span>
<span style="width:276px;display:inline-block;"> <input type="checkbox" name="check_list[]" value="sub_category_id = '4'">Name4</span>
使用选定的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;
孤岛。。。
更改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>
然后将您的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'
}
?>
您可能需要更改查询以适合您的应用程序,但这将有助于您朝着正确的方向前进。更改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>
然后将您的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'
}
?>
您可能需要更改查询以适合您的应用程序,但这将有助于您朝着正确的方向前进。正如Martin所建议的那样,de将简单的解决方法转为de。我就是这么做的:
<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)";
$sub_category_1=$_POST['sub_category_id'];
$query=内爆(“,”,$sub_category_1);
$sql=“从($query)”中包含子类别id的表中选择*;
正如Martin所建议的,de将简单的解决方法转变为de。我就是这么做的:
<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)";
$sub_category_1=$_POST['sub_category_id'];
$query=内爆(“,”,$sub_category_1);
$sql=“从($query)”中包含子类别id的表中选择*;
那么,$arrEstados
在哪里/如何生产?了解。然后您可以去掉“或”选项标记的内容和值可以只是数字。Marc是用于检索数据的mysql查询:$sql=“SELECT*FROM sub_categories,其中cat_id=1 order by sub_cat_name”$res=mysql\u查询($sql,$con)$num=mysql\u num\u行($res);对于($i=0;$i<$num;$i++){$dados=mysql_fetch_数组($res);$arrEstados[$dados['sub_cat_id']]=$dados['sub_cat_name'];那么,$arrEstados
是在哪里/如何生成的呢?了解一下。然后你就可以摆脱那些“或”的东西,选项标记的值可以是数字。Marc是用来检索数据的mysql查询:$sql=“从子类别中选择*,其中cat_id=1按子类别cat_名称排序”$res=mysql_查询($sql,$con);$num=mysql_num_行($res);for($i=0;$i<$num;$i++){$dados=mysql_获取数组($res)$arrEstados[$dados['sub_cat_id']]=$dados['sub cat_name'”;