Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何将多个复选框查询更改为多个选定jQuery?_Php_Jquery_Mysql_Jquery Chosen - Fatal编程技术网

Php 如何将多个复选框查询更改为多个选定jQuery?

Php 如何将多个复选框查询更改为多个选定jQuery?,php,jquery,mysql,jquery-chosen,Php,Jquery,Mysql,Jquery Chosen,我有一个多复选框查询,如下所示 <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;&l

我有一个多复选框查询,如下所示

  <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>
使用选定的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'”;