我是学习网络开发的初学者。我目前正在尝试使用 Chosen Jquery 插件进行多选下拉菜单。
下拉列表是从数据库查询
下面是我到目前为止完成的代码。
从 SQL 查询数据
$LOH_STATEMENT = "SELECT * FROM tableA";
$result = ociparse($live, $LOH_STATEMENT);
ociexecute($result);
多选下拉菜单。
<center>Program Name
<select data-placeholder="Select" multiple class="chosen-select" tabindex="17" name="program[]">
<option value="" ></option>
<?php
for($i=0; $i<count($result;$i++){
while ($row = oci_fetch_assoc($result)){
echo '<option value="'.$row['PROGRAM'].'">'.$row['PROGRAM'].'</option>';
}
}
?>
</select>
根据下拉选择的数据查询表格
if(! empty($_POST['program'])) {
$i = 0;
$selectedOptionCount_PROGRAM = count($_POST['program']);
$selectedOption_PROGRAM = "";
while ($i < $selectedOptionCount_PROGRAM) {
$selectedOption_PROGRAM = $selectedOption_PROGRAM . "'" . $_POST['program'][$i] . "'";
if ($i < $selectedOptionCount_PROGRAM - 1) {
$selectedOption_PROGRAM = $selectedOption_PROGRAM . ", ";
}
$i ++;
}
}
$query = $LOH_STATEMENT . " WHERE program = ('" . $_POST['program'] . "') ";
}
echo $query;
Jquery-Chosen
$(".chosen-select").chosen({
no_results_text: "Oops, nothing found!",
width: "30%",
});
虽然我从下拉列表中得到的结果是一个数组,但我的问题是如何从数组中提取值,以便将它们放入数据库中 https://photos.app.goo.gl/hm5wdunufps9o2Gy7
(如果链接不起作用 - 当我 echo $query
时,它会显示;
SELECT * FROM tableA WHERE program = 'Array'
)
我想要的结果是;例如,当用户选择“舞蹈课”和“声乐课”时,它将给出输出 SELECT * FROM tableA WHERE program = 'dance class, vocal class'
这可能吗?或者是否有任何其他替代或更简单的方法来做到这一点?
~抱歉这个问题太长了。我不知道如何总结它。下次会做得更好。谢谢 :) ~
最佳答案
由于 $_POST['program']
是一个数组,您需要 implode()它并更改您的查询以使用 IN
而不是 =
:
改变
$query = $LOH_STATEMENT . " WHERE program = ('" . $_POST['program'] . "') ";
到
$imploded = implode("','", $_POST['program']);
$query = $LOH_STATEMENT . " WHERE program IN ('" . $imploded . "')";
关于php - 如何从选择的 Jquery 中提取数组输出中的多个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57920055/