首页 > 解决方案 > 根据数据库更改边框

问题描述

我有一个包含 2 个表的数据库:

成员表和节目

我有 2 页:search.phpresults.php

我设法从表格中显示我想要的所有字段shows(即:如果我在“search.php”页面中输入“Parks & Recreation”,我会得到页面中显示的所有信息(姓名、演员、...)命名为“results.php”。

我尝试了不同的解决方案,包括:

https://www.w3schools.com/jsref/prop_style_bordercolor.asp

我知道我应该使用: document.getElementById("myDiv").style.borderColor = 'red'

我不知道该怎么做是如何让这段代码的最后一点对我的 sql 代码做出反应。

<div class="container">
    <?php
    include_once("inc/search.inc.php");
    if ($resultat->rowCount() > 0) { ?>
        <ul>
            <?php while ($search = $resultat->fetch()) { ?>
            <li><?= $search['titre'] ?></li>
            <li><?= $search['category'] ?></li>
            <li><?= $search['type'] ?></li>
            <?php 
        } ?>
        </ul>
        <?php 
    } else { ?>
        Sorry, no results for <?= $term ?>...
        <?php 
    } ?>
</div>
<script>
function myFunction() {document.getElementById("container").style.border = <?php $resultat = $cooking->query('SELECT color FROM shows');?>;
}
</script>

我希望边框对表格 show 中的“颜色”字段做出反应。在这个“公园和娱乐”的例子中,我想让边界变成绿色。

标签: javascriptphpsqlpdo

解决方案


你很亲密

在这条线上

document.getElementById("container").style.borderColor = <?php $resultat = $cooking->query('SELECT color FROM shows);?>;

我不知道$cooking->query返回什么,但是您可以弄清楚的方法是:

在代码中添加一行,如下所示:

<?php var_dump($cooking->query('SELECT color FROM shows')); ?>

这将让您看到从$cooking->query返回的内容

很可能会返回一个数组

如果它是一个数组,你可以像这样从元素中获取颜色

$shows[0]['color']

$shows是一个数组,[0]表示你想使用数组中的第一个元素(数组索引从零开始),'color'表示你想要颜色列的内容

从数据库中获得颜色后,您可以将其嵌入到 JavaScript 中。一定要在它周围加上引号。

我会这样编码:

 <?php $resultat = $cooking->query('SELECT color FROM shows WHERE show_id = 1');?>
 document.getElementById("container").style.borderColor = "<?= $resultat[0]['color'] ?>";

您需要一个WHERE来指示您想要颜色的节目。您可以使用类似show_id的 id或节目名称。

document.getElementById("container").style.borderColor = "<?= $resultat[0]['color'] ?>";

推荐阅读