【问题标题】:Changing a border according to the database根据数据库更改边框
【发布时间】:2019-05-29 13:14:56
【问题描述】:

我有一个包含 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>

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

【问题讨论】:

  • 没有大量查看您的代码,我有几个简单的问题:resultat 会保留一行,您仍然需要访问 color 字段,对吗?您的 myFunction 方法没有被从任何地方调用。您仍然应该在某个地方调用它,对吗? ETA:另外,您的查询是否只返回一行?你应该只访问第一行吗?
  • 看起来你应该能够使用内联样式来做到这一点,根本不需要 JavaScript。

标签: javascript php sql pdo


【解决方案1】:

你们很亲密

在这条线上

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'] ?>";

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-12-04
    • 2014-12-30
    • 1970-01-01
    • 2017-08-24
    • 2019-12-01
    • 1970-01-01
    • 2018-09-06
    • 2016-03-30
    相关资源
    最近更新 更多