我有一个函数,它接受一个我想要分解的数组并传递到 where 条件。 我的功能
<?php
function somearray($value = array())
{
$conditions = "";
foreach($value as $key => $condition)
{
$conditions .= "$key=$condition && ";
}
$conditions = substr($conditions, 0, -4);
$qry = mysql_query("SELECT * FROM maincase WHERE $conditions");
while($arr = mysql_fetch_array($qry))
{
echo 'Ticket Number= '.$arr['ticket_number'].'<br />';
}
}
?>
我想通过表单发送值,但仅限选定的复选框
<?php
if(isset($_GET['filter']))
{
$list = array(
"region" => $_GET['region'],
"status" => $_GET['status']
);
somearray($list);
}
?>
<form action="" class="form-inline" method="get">
<label for="">Region</label>
<input type="checkbox" name="region" <?php if(isset($_GET['region'])) { echo 'checked' ;} ?> value="1">
<label for="">Status</label>
<input type="checkbox" name="status" <?php if(isset($_GET['status'])) { echo 'checked' ;} ?> value="3">
<input type="submit" value="filter" name="filter">
</form>
这段代码有效。但我必须过滤 7 到 8 个字段。我只想在选中该复选框时发送值。
最佳答案
在函数中传递值应该像这样:
function somearray($value)
{
$conditions = "";
foreach($value as $key => $condition)
{
$conditions .= "$key=$condition && ";
}
$conditions = substr($conditions, 0, -4);
$qry = mysql_query("SELECT * FROM maincase WHERE $conditions");
while($arr = mysql_fetch_array($qry))
{
echo 'Ticket Number= '.$arr['ticket_number'].'<br />';
}
}
?>
在您的情况下,参数被初始化为默认数组或空数组,其中您传递一个带有值的数组。
参见引用:
关于php - 使用数组仅将选定的值传递给函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17943111/