javascript 将逗号分隔的字符串拆分为数组并显示在html页面上

mlnl4t2r  于 2022-10-30  发布在  Java
关注(0)|答案(4)|浏览(197)

基本上,我正在创建一个页面,其中将显示来自mySQL数据库的信息。我在数据库中有一个名为topics的列,其中的字符串(VARCHAR)如下所示:
市场营销、商业、法律、医学...
我尝试在逗号后将这个字符串拆分,并在一行中逐个显示它们,如下所示:

<h6>Marketing</h6>
<h6>Business</h6>
<h6>Law</h6>
<h6>Medicine</h6>
<h6>...</h6>

我已经为其他行创建了一个循环,但我不确定是否可以在循环中创建一个循环,我甚至不确定我尝试实现的目标是否可行,但我相信它是可行的。以下是我的完整PHP代码:

<?php
include_once '../handlers/db_conn.php';

$sql = $conn->prepare("SELECT * FROM esc WHERE hosting_country = ?");
$sql->bind_param("s", $hosting_country);

$hosting_country = 'Poland';
$sql->execute();

$result = $sql->get_result();
$resultCheck = mysqli_num_rows($result);

if ($resultCheck > 0) {

} else {
  echo '<p class="not_found">Nothing Found</p>';
}

while($escrow = $result->fetch_assoc()) {

?>

<div class="col-lg-6 col-md-12 col-sm-12 col-12">
  <div class="sec1_col1">
    <h2><?php echo $escrow['project_name'] ?></h2>
    <i class="fi fi-br-world"></i>
    <h3><?php echo $escrow['hosting_country'] ?></h3>
    <i class="fi fi-sr-calendar-lines"></i>
    <h3><?php echo $escrow['start_date'] ?> - <?php echo $escrow['end_date'] ?></h3>
    <h4 class="objectives"><?php echo $escrow['objectives'] ?></h4>
    <h5>Topics</h5>
    <h6><?php echo $escrow['topics'] ?></h6>
    <hr>
    <a href="#">Read more</a>
  </div>
</div>

<?php
}
?>

我想知道是否有可能在这个循环中为元素创建另一个循环,用逗号分隔这个字符串,并在标签中一个一个地显示?任何帮助都将不胜感激。谢谢。

编辑

这就是我想要达到的目标:

koaltpgm

koaltpgm1#

非常简单(是的,代码中可以有任意多个嵌套循环):
使用explode拆分字符串,然后循环遍历。

<!-- inside your loop... -->
<h5>Topics</h5>
<?php foreach(explode(", ", $escrow["topics"]) as $topic) { ?>
<h6><?= $topic ?></h6>
<?php } ?>
b1zrtrql

b1zrtrql2#

您可以通过逗号、修剪(删除空格)和连接(可以是空的,但换行符更好)进行简单的分解。

$topics = 'Marketing, Business, Law, Medicine';
echo join(PHP_EOL, array_map(fn($topic) => '<h6>'. trim($topic) . '</h6>', explode(',' , $topics)));

输出

<h6>Marketing</h6>
<h6>Business</h6>
<h6>Law</h6>
<h6>Medicine</h6>
w46czmvw

w46czmvw3#

您可以分割成数组,然后将数组Map到包含的标签:

function h6($n)
{
    return "<h6>$n</h6>";
}

$in = "Medicine,Arts,Law";
$components = preg_split("/,/", $in);
$html = implode(array_map('h6', $components));
echo($html);
ecbunoof

ecbunoof4#

使用以下代码进行分解

<!DOCTYPE html>
<html>
<body>

<?php
$str = "Hello,World!,Beautiful,Day!";
$arr = explode (",", $str);//;('Hello','World!','Beautiful','Day!');
foreach ($arr as $item) {
    echo "<h6>".$item."</h6>";
}

?>

</body>
</html>

'''

相关问题