javascript - 使用 Javascript 更改 PHP 中元素的样式

标签 javascript php html css mysql

我对 PHP 中的 javascript 有疑问。我想使用 Javascript 函数将 ccs 属性 display 更改为 block,仅针对那些包含 php 中某些文本的 div 元素从 MySQL 表 中的列中获取的变量。我不知道这种方式是否真的可行,但这是代码:

PHP:

 $sql="SELECT * FROM Filter1";
  $result=$conn->query($sql);
  while($row = $result->fetch_assoc()) {
  $meno=$row['meno'];
  echo '<script type="text/javascript"> filterTovar() </script>';

JavaScript:

   function filterTovar()
  {
    var meno='<?php echo $meno; ?>'; 
    var produkt=document.getElementsByClassName("tovar");
    produkt.style.display="none";
    for(var i=0;i<produkt.length;i++)
    {
      produkt[i].style.display="none";
    }
    for(var i=0;i<produkt.length;i++)
    {
      if(produkt[i].innerHTML==meno)
      {
        produkt[i].style.display="block";
      }
    }
  }

我正在尝试制作某种过滤器,根据表格的结果只显示某些 div,但上面的代码不起作用,我不确定是否可以通过这种方式工作。

我正在从中获取数据的 MySQL 表:

    id      meno        znacka      cena    op      format
    425     H81M-S2V    GIGABYTE    46.03   DDR3    mATX
    426     H110N       GIGABYTE    83.05   DDR4    mITX

编辑: 更好地解释我的问题:用户使用复选框来过滤我网站上的产品,在数据库 php 中创建包含相应产品的表。我上面的代码应该采用该表并使用列“meno”,其中是产品名称,以仅显示那些包含字符串“meno”的 div。

EDIT2: 我想问一下是否可以通过 DOMDocument() 更改或使用元素 css。如果是,它将回答我的问题。

最佳答案

是的,这是可能的,但不需要使用 javascript/jQuery - 只需使用 HTML 和 CSS。

基本上,您有数据库结果集并使用 while 循环遍历它,对吗?

我猜你是在那个 while 循环中构建 HTML。

在循环的每次迭代中,测试您的 MySQL 列值并向所需的 HTML 元素添加一个类。

这是一个例子:

$out = '<table><tbody>';
while($row = $result->fetch_assoc()) {
    $theclass = ($row['something']=='hideme') ? ' hiddenTD' : '';
    $out .= '<tr><td class="' .$theclass. '">' .$row['something']. '</td></tr>'
}
$out = '</tbody></table>';
echo $out;

当然,您会在文档中定义 CSS,例如:

<style>
    .hiddenTD{display:none;}
</style>

这是一个糟糕的例子,因为你不能“隐藏”TD,但这是一个例子。

关于javascript - 使用 Javascript 更改 PHP 中元素的样式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41409432/

相关文章:

javascript - 那么如何进行异步呢?

php - 如何使用 php 将我的 sql 查询转换为 json?

javascript - 如果选中 radio ,则需要输入字段

html - 使用 div 显示 block 内的复选框

php - 如何在 linux 服务器上安装和配置 ffmpeg?

html - Elm -- 将文本文件解析为 Html

javascript - 在AIR中卸载声音,系统内存变满

javascript - 使用数据属性覆盖弹出选项参数

javascript - 我无法理解 Ramda.js 中的 "lift"

php - CSS <link> href 丢失前导斜杠,利用 SilverStripe