php - php中使用ajax创建基于数据库数组元素的html表
问题描述
我有一个网站,您可以在其中选择表格的一行,然后在不刷新页面的情况下显示另一个表格。新表基于转换为数组并以逗号分隔的字符串。
该表是在服务器端生成的,而不是在带有 php 元素的 html 中生成的。我似乎无法让表格显示原始字符串的所有元素,现在作为一个数组,并将它们作为行动态添加。
这是服务器端代码:
if (isset($_GET['query'])) {
$id = $_GET['query'];
$query = "SELECT * FROM samples_database WHERE sample_id=$id;";
$result = mysqli_query($connect, $query);
$input = mysqli_fetch_array($result);
$input1 = $input['micro_analysis'];
$rows = var_dump(explode(',', $input1));
if (count($rows) > 0) {
$output .=
'<thead>
<tr>
<th>Tests</th>
</tr>
</thead>
<tbody>';
foreach ($rows as $row): array_map('htmlentities', $row);
'<tr>
<td>'; echo implode('</td><td>', $row);
'</td>
</tr>';
endforeach;
'</tbody>';
}
echo $output;
}
为了更好地理解,变量$input1
将如下所示:
$input1 = "1,2,44,67";
使用var_dump(explode(',', $input1));
它时会产生这样的数组:
array(4) { [0]=> string(1) "1" [1]=> string(1) "2" [2]=> string(2) "44" [3]=> string(2) "67" }
所以现在我需要在列测试下创建一个带有“1”的行,然后是一个带有“2”的新行,依此类推......
有人可以帮忙吗?
解决方案
如果$input1
是一个用逗号分隔的简单字符串,那么这样的内容就足够了:
$input1 = "1,2,44,67";
$rows = explode(',', $input1);
$output = "";
if (count($rows) > 0) {
$output .= '<thead><tr><th>Tests</th></tr></thead><tbody>';
foreach ($rows as $row){
$output .= '<tr><td>' . $row . '</td></tr>';
}
$output .= '</tbody>';
}
echo $output;
无需再次使用array_map
,explode
只需遍历内部的每个结果$rows
并使用字符串连接即可。
推荐阅读
- javascript - reactjs钩子中连续状态对象设置的问题
- oracle - 为什么我在输出中得到游标语句?
- python - 如何计算n个numpy数组的平均值
- vhdl - 为什么我的 VHDL 测试台给我“U”作为输出?使用 4x1MUX 和 Dflipflop
- tizen - 无法在 Tizen TV 中看到细微差别
- html - 如何将一个元素与其他三个元素居中并使其响应?
- karate - 空手道 API 测试 - 检查响应值是否为空的方法
- php - Wordpress - 在 get_template_part 中插入自定义内容
- c# - 正则表达式 - 在最终出现 @ 之前删除特定字符
- c++ - 将浮点数四舍五入到一定精度