2016-12-31 4 views
0

PHPのjavascriptに問題があります。私はCCSがMySQLのテーブルの列から取得されPHP変数にある特定のテキストが含まれているもののみのdiv要素に対して表示にブロックをatribute変更するにはjavascript関数を使用します。それは実際にこの方法も可能であるが、ここでのコードだ場合、私は知らない。Javascriptを使用してPHPの要素のスタイルを変更する

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 

EDIT:私の問題のベター説明:ユーザーがデータベースPHPで、私のウェブサイト上の製品をフィルタリングするために、チェックボックスを使用していますが、対応する製品を持つテーブルを作成します。上記の私のコードは、そのテーブルを取って、 "meno"という文字列を含むdivだけを表示する製品の名前である "meno"という列を使用することになっています。

EDIT2: DOMDocument()を使用して要素cssを変更または操作することが可能かどうか尋ねたいと思います。はいの場合は、私の質問に答えます。

+0

質問にデータベース構造を追加できますか? –

+0

[mcve]と、結果に依存する*の意味についてのより良い説明を提供してください。 – charlietfl

答えて

0

はい、可能ですが、javascript/jQueryを使用する必要はありません.HTMLとCSSを使用するだけです。

基本的には、データベースの結果セットがあり、whileループでループします。

私はそのwhileループでHTMLを構築していると思います。

ループの各繰り返しで、MySQLの列値をテストし、目的のHTML要素にクラスを追加します。ここで

は例です:あなたは「隠す」ことができないので、これはひどい例である

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

:もちろん

$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を持っているでしょうTD、それは例です。

+0

テーブルを使用する必要はありません。その列を含むelemenetsのCSSを変更する必要があります。 – chiro

+0

私はそれをよく言わなかったと思います。私は同じクラス "tovar"で7つのdiv要素を持っています。私がJavaScriptでやろうとしているのは、クラス "tovar"を持つすべての要素を選択し、列が含まれている場合はループ内で1を1つテストします。もしそうなら、divのstyle.displayを "block"に変更します。それ以外の場合は何も行いません。 – chiro

+0

ここで私が理解できないことがあります。 MySQLの結果でHTML要素をどのように取得しますか?MySQLのテーブルにHTMLの塊を格納していますか? HTMLはどこで作成されますか? – gibberish

関連する問題