【问题标题】:I have a form in which customer can select multiple locations as well as trades and after submission of form I want to filter data我有一个表格,客户可以在其中选择多个位置以及交易,提交表格后我想过滤数据
【发布时间】:2025-12-31 01:20:11
【问题描述】:

我有一个表单,客户可以在其中选择多个位置以及交易,提交表单后我想过滤数据库中的数据,但我不明白如何将这些数组值转换为字符串并存储在单个变量中

这是我的动态形式

<form method="POST" action="">
            <p id="success_para" ></p>
                <div class="navbar-default sidebar hemnav" role="navigation">

                    <div class="sidebar-nav navbar-collapse">

                      <h5> Agent By Trades </h5>

                        <ul class="nav in" id="side-menu">

                        <?php
                        $sql_trades=exeQuery("SELECT * FROM `service` WHERE 1");
                        while($res_trades=fetchAssoc($sql_trades)){
                        ?>
                            <li style="padding: 10px;"><input type="checkbox" name="sel_trades[]" value="<?php echo $res_trades['service_id'] ?>" class="filters"> <?php echo $res_trades['service_title'] ?></li>
                        <?php } ?>
                          </ul>
                    </div>

                </div>




<div class="navbar-default sidebar cattwo" role="navigation">

    <div class="sidebar-nav navbar-collapse">

      <h5> Agent By Location </h5>

        <ul class="nav in" id="side-menu">

                        <?php
                        $sql_loc=exeQuery("SELECT * FROM `location` WHERE 1");
                        while($res_loc=fetchAssoc($sql_loc))
                        {
                        ?>
                          <li style="padding: 10px;"><input type="checkbox" name="sel_loc[]" value="<?php echo $res_trades['location_id'] ?>" class="filters"> <?php echo $res_loc['location_name'] ?></li>
                        <?php } ?> 

          </ul>

    </div>

</div>

<button type="submit" name="filter" class="btn btn-block btn-lg btn-blu">Filter Now</button> </button><br><br>

</form>

【问题讨论】:

标签: php sql string


【解决方案1】:

您将在 $_POST 中为两个键 '[x, y, z]' 获得一个数组。你想把它转换成什么?一个字符串?

有什么标准吗?如果没有,implode(', ', $array) 会将其转换为带有逗号分隔列表的单个字符串。从那里,您可以将其作为值存储在经过适当清理的字段中。

【讨论】:

  • 感谢 Malovich 的回复 其实我是 PHP 新手,所以不知道如何在字符串中转换数组数组
  • 这里我有两件事,一个是位置,另一个是交易,所以想为位置和数组创建单独的字符串,并希望存储在变量中
  • 然后代码 sn-p 应该可以工作。 implode 是一个 php 函数,它将一个数组折叠成一个字符串,第一个参数是分隔符,第二个参数是要折叠的数组,函数返回新创建的字符串。
【解决方案2】:

您可以使用 php implode 函数来存储所选值的数组

$selection - implode(',',$_POST['sel_loc'])

然后您可以将这些值存储在数据库中,

【讨论】:

  • 你可以使用它两次大声笑:) 一次用于位置,第二次用于贸易
  • 那么请投票
最近更新 更多