根据用户互动显示DB列表



iam当前基于PHP和MySQL大量构建Web应用程序。在一个站点上,有多个按钮可以单击并取决于用户单击的按钮,需要显示不同的MySQL数据。我的第一个想法是将所有可能的输出存储到一个数组中,但我想这是明智的选择,这不是一个不错的选择,因为用户可能甚至不想看到很多数据。用户单击按钮后,另一个选择几乎是加载数据,这是IAM当前试图解决的方法。

用户单击按钮,以下功能在JavaScript中执行:

function requestParticipators(id) {
        $.ajax({
          url: "../scripts/request-participators.php",
          type: "POST",
          data: {
            "id"  : id
          },
          success: function(data) {
            if(data.code == 1) {
              $('#userList').html(data.message);
              $("#modalMembers").modal("show");
            }else {
              $("#modalFailed").modal("show");
            }
          },
          error: function(error) {
            $("#modalFailed").modal("show");
          }
        });
      }

您可以查看是否成功返回数据,我想在Bootstrap模式中显示它。在展示它之前,我实际上将数据加载到一个名为"用户列表"的空div中。但是" Request-Participators.php"返回的数据是一个巨大的字符串,因为它包含Bootstrap模式所需的整个数据。目前看起来像这样:

$stmt->bind_result($db_id, $db_email, $db_vorname, $db_nachname);
        while($stmt->fetch()) {
            $output_string .= '<li class="list-group-item px-0">
                <div class="row align-items-center">
                    <div class="col-auto">
                    </div>
                    <div class="col ml-n2">
                        <!-- Title -->
                        <h4 class="mb-1 name">
                            <a href="#">' .$db_vorname .' ' .$db_nachname .'</a>
                        </h4>
                        <!-- Time -->
                        <p class="small mb-0">
                            <span class="text-success">●</span> Online
                        </p>
                    </div>
                    <div class="col-auto">
                        <!-- Button -->
                        <a href="#!" class="btn btn-sm btn-white">
                            Add
                        </a>
                    </div>
                </div> <!-- / .row -->
            </li>';
        }

output_string返回为JSON:

print json_encode(array('message' => $output_string, 'code' => 1));

这是我想出的最好方法...我有点担心传递如此巨大的弦。有什么更好的方法吗?非常感谢您阅读和原谅我的英语不好>&lt;

@maximelaunois可能所指的是,您的JSON应仅包含从DB中获取的实际数据,而不包含任何HTML标记。类似:

..
...
$data=array();
$stmt->bind_result($db_id, $db_email, $db_vorname, $db_nachname);
        while($stmt->fetch()) {
            array_push($data, array($db_id, $db_email, $db_vorname, $db_nachname);
        }
...
..
print json_encode($data);

,然后使用JavaScript创建实际的标记客户端。

最新更新