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

时间:2016-12-31 15:10:04

标签: javascript php html css mysql

我在PHP中遇到javascript问题。我想使用Javascript函数将ccs属性显示更改为阻止,仅用于包含 php中某些文本的 div 元素变量,取自 MySQL表中的列。我不知道这种方式是否真的可行,但这里是代码:

PHP:

append()

JavaScript的:

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

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

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

   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";
      }
    }
  }

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

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

1 个答案:

答案 0 :(得分:0)

是的,这是可能的,但不需要使用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,但这是一个例子。