我在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。如果是,它会回答我的问题。
答案 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,但这是一个例子。