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创建实际的标记客户端。