选择select,如何将多个值放入$ bind数组

时间:2016-03-21 17:07:53

标签: jquery mysql arrays pdo bind

我正在使用带有extendedPdo的aura sql。 我有一个带有过滤器的表单,您可以使用所选的jquery选择多个选项,因为您可以看到我从数据库中选择了pop选项。我不知道如何从我提交后从表单中获取多个值,因为我使用$ bind与$ pdo。 我想添加一个"和pr.idproduttori =:produttore"对于我选择的每个选项。抱歉我的英语不好:D

模板:

<select name="filter[produttore][]"  multiple class="chosen-select form-element" data-placeholder="Seleziona Produttore/i">
    <option value="">Tutti</option>
    <?php foreach ($produttori as $row): ?> 
                    <option value="<?= $row['id'] ?>" <?= @$filter['produttore'] == $row['id'] ? 'selected' : '' ?>><?= $row['prodname'] ?></option>
    <?php endforeach ?> 
</select>

控制器:

if(!empty($filter['produttore'])){
    foreach($filter['produttore'] as $row){
        $q_where .= ' and pr.idproduttori = :produttore';
        $bind['produttore'] = $row;
    }
}

if(!empty($filter['ean'])){
        $q_where .= ' and p.ean_code = :ean';
        $bind['ean'] = $filter['ean'];
}

// Query predefinita
$q = 'select p.idprodotti as id, pr.nome as produttore, p.modello, p.ean_code as ean, t.descrizione as tipo, count(o.idoggetti) as quanto
    from prodotti p join produttori pr on p.idproduttori = pr.idproduttori
    join tipologia t on p.idtipologia = t.idtipologia
    left join oggetti o on p.idprodotti = o.idprodotti';

$q_attribs = ' group by p.idprodotti order by '.$filter['orderby'].' '.$filter['verso'];

$data = $pdo->fetchAll($q.$q_where.$q_attribs, $bind);

2 个答案:

答案 0 :(得分:1)

现在可行:

if(!empty($filter['produttore'])){
    $q_where .= ' and (';
    $i = 'a';
    foreach($filter['produttore'] as $row){
        $q_where .= 'pr.idproduttori = :'.$i.' or ';
        $bind[$i] = $row;
        $i++;
    }
    // d($bind[]);
    $q_where = substr($q_where,0,-4).')';
}

看起来不是很好但是有效

答案 1 :(得分:0)

我不确定,但我发现你的意思是smthg:

if(!empty($filter['produttore'])){
    $q_where .= ' and (';
    foreach($filter['produttore'] as $row){
        $q_where .= 'pr.idproduttori = :produttore or ';
        $bind['produttore'] = $row;
    }
    $q_where = substr($q_where,0,-4).')';
}
相关问题