1

もちろん、データベースに基づくCMSに取り組んでいます。データベースの構造は次のとおりです (言語はオランダ語です)。

id、artikelnummer_fabrikant、breedte、diepte、hoogte、extrainfo、afmeting、kleur、merk、serie、producttype、omschrijving、prijsfinal、levertijd

次のコードでは、データベースからすべての情報を取得し、テーブルに配置します。

(タグの作成に < と > を使用していないのが残念です。このテキスト エディターはタグをテキストではなくタグとして認識します。これを正しく機能させる方法がわかりません。これに関する任意のヒントを歓迎します!)

function get_content() {

echo "<p>";
echo "<table>";
echo "<tr>";
echo "<td> id </td>";
echo "<td> artikelnummer frabrikant </td>"
and so on
echo "</tr>";

$sql = "SELECT * FROM products";
$res = mysql_query($sql) or die (mysql_error());

if (mysql_num_rows($res) != 0) :
while ($row = mysql_fetch_assoc($res)) :
echo "<tr>";
echo "<td> . $row['id'] . </td>";
echo "<td> . $row['artikelnummer_fabrikant'] . </td>";
and so on
echo "</tr>";
endwhile;

echo "</table>";
echo "</p>";

endif;

ここで、タグの選択とオプションを使用してこれにフィルターを作成し、ブランド (merk) 'windsor' オプションを選択すると、ブランド 'windsor' を持つすべての製品と、breedte、hoogte などのすべての情報が表示されるようにします。 、diepte (幅、高さ、深さ)。

オプションメニューにすべてのブランド(マーク)を表示するコードを取得しました:

function category_filter() {

echo "Merk: ";
echo "<select onchange=window.location = this.value>;";
$sql = "SELECT merk FROM products";
$res = mysql_query($sql) or die (mysql_error());

if (mysql_num_rows($res) !=0 ) :
while ($row = mysql_fetch_array($res, MYSQL_ASSOC)) :
echo "<option> . $row['merk'] . </option>";
endwhile;
endif;
echo "</select>";

もちろん、データベース内のアイテムごとに 1 つずつあります。

私が次にやりたいことは、これらの 2 つのコードを何らかの方法で組み合わせて、オプション メニュー brand(merk) でブランド (merk) 'Windsor' を選択すると、ブランド 'Windsor' を持つすべての製品 + すべてのその製品のその他の情報。

私はこれを実現するために1週間苦労していますが、思い通りに進めることができません:(。

どうすればこれを機能させることができますか?

4

1 に答える 1

0

わかりましたので、次のコードを書くことでこれを行う方法を見つけました:

    echo    "<form class='merk' action='index.php'>";
        echo        "<select name=merk>";
        echo            "<option value=''>Kies een merk</option>";

        while ($row_merk    =   mysqli_fetch_array($merk_query_selected)) :

        $filter =   $row_merk['merk'];

            if($filter == $merk) :
                echo    "<option value=" . urlencode($filter) . " selected='selected'>" . $filter . "</option>";
            else :
                echo    "<option value=" . urlencode($filter) . ">" . $filter . "</option>";
            endif;

        endwhile;

        echo        "</select>";        
        echo        "<input class='input-merk' type='submit' value='Filter op merk'>";
        echo    "</form><br />";

$('form').each(function() {
        var that = $(this);
        $.post(that.attr('action'), that.serialize());
    });</script>

デコードします:

$merk                                       =   urldecode($_GET["merk"]);

次に、この while ループを実行して内容を取得します。

while ($row_merk    =   mysqli_fetch_array($merk_query_all)) :
            echo    $table_row;
            echo        $table_cell, $row_merk['id'] . $table_div_end;
            echo        $table_cell, $row_merk['artikelnummer_fabrikant'] . $table_div_end;
            echo        $table_cell, $row_merk['breedte'] . $table_div_end;
            echo        $table_cell, $row_merk['diepte'] . $table_div_end;
            echo        $table_cell, $row_merk['hoogte'] . $table_div_end;
            echo        $table_cell, $row_merk['extrainfo'] . $table_div_end;
            echo        $table_cell, $row_merk['afmeting'] . $table_div_end;
            echo        $table_cell, $row_merk['kleur'] . $table_div_end;
            echo        $table_cell, $row_merk['merk'] . $table_div_end;
            echo        $table_cell, $row_merk['serie'] . $table_div_end;
            echo        $table_cell, $row_merk['producttype'] . $table_div_end;
            echo        $table_cell, $row_merk['omschrijving'] . $table_div_end;
            echo        $table_cell, $row_merk['prijsfinal'] . $table_div_end;
            echo        $table_cellEnd, $row_merk['levertijd'] . $table_div_end;
            echo    $table_row_end;
        endwhile;

今私がしたいのは、同時に複数の選択をフィルタリングできるように動的にすることです。

最善を尽くします。どんな助けでも大歓迎です!

[編集] これがどのように機能するかを発見しましたが、まだ動的ではありません。しかし、この質問は回答済みです。これを動的にする方法を Web で調べます。

于 2013-03-25T10:24:35.803 に答える