Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/424.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 使用复选框搜索多个数据_Php_Javascript - Fatal编程技术网

Php 使用复选框搜索多个数据

Php 使用复选框搜索多个数据,php,javascript,Php,Javascript,我有一个数据库和一个表a bank,该表中有3个字段是id、银行名称、分行。我想使用复选框bank_name搜索数据库 银行名称有3条记录,有3个复选框:Bank1、Bank2、Bank3 如果我单击出现bank3的复选框,我只需要包含bank3数据的记录 如何创建它?首先,您需要一些表单,最好是由php本身构建的,因为您使用存储在dbrms中的值 <form method="post"> <label for="banking_bank1">Bank1

我有一个数据库和一个表a bank,该表中有3个字段是id、银行名称、分行。我想使用复选框bank_name搜索数据库

银行名称有3条记录,有3个复选框:
Bank1、Bank2、Bank3

如果我单击出现bank3的复选框,我只需要包含bank3数据的记录


如何创建它?

首先,您需要一些表单,最好是由php本身构建的,因为您使用存储在dbrms中的值

<form method="post">    

    <label for="banking_bank1">Bank1:</label>
    <input id="banking_bank1" type="checkbox" name="banking[]" value="bank1" /><br />
    <label for="banking_bank2">Bank2:</label>
    <input id="banking_bank2" type="checkbox" name="banking[]" value="bank2" /><br />
    <label for="banking_bank3">Bank3:</label>
    <input id="banking_bank3" type="checkbox" name="banking[]" value="bank3" /><br />

    <button type="submit" name="search" value="search">Search</button>
</form>

如果您需要一些额外的解释,只需询问。

如果脚本是用javascript编写的,那该怎么办,因为如果您使用PHP,则必须使用submit按钮。而在javascript中,不需要单击submit按钮,当我们单击复选框时,数据将自动显示为catch all on Leave for the form,手动设置buttons值,然后重新发布结果。你需要ajax教程吗?您的代码只会添加一些内容。
if ( isset($_POST) && isset($_POST['search']) )
{
    $banksWhereClause = '';

    if ( ! empty($_POST['banking']) ) // if the banking var is set, we'll add the values to the query   
    {
        $banksToSearch = is_array($_POST['banking']) ? $_POST['banking'] : array($_POST['banking']);
        foreach ( $banksToSearch as &$bank )
        {
                // prevent sql injection
            $bank = mysql_real_escape_string($bank);
        }
        // add all values to an 'IN' clause
        $banksWhereClause = "bank_name IN ('" . implode("', '", $banksToSearch) . "')";
    }

    if ( empty($banksWhereClause) )
    {
        $banksWhereClause = '1';
    }

    $found = array();
    // build the final query
    $sql = 'SELECT * FROM bank WHERE ' . $banksWhereClause;
    $result = mysql_query($sql);

    while ( $row = mysql_fetch_assoc($result) )
    {
        $found[] = $row;
    }

    var_dump($found);
}