0

わかりましたので、カタログ用の XML ファイルから読み取る PHP ベースのショッピング カートを作成しようとしています。唯一の問題は、情報を Web サイトに出力すると、XML ファイルのすべてが出力されることです。それらをカテゴリ (靴、アパレルなど) に分類し、呼び出されたカテゴリのみを出力する必要があります。

XML ファイルは次のように構成されています (整理のために余分なスペースが追加されています)。

<items>
    <product>
        <id>           TSHIRT01                        </id>
        <title>        Red T-Shirt                     </title>
        <category>     apparel                         </category>
        <description>  T-Shirt designed by Sassafrass  </description>
        <img>          ../images/apparel1.jpg          </img>
        <price>        5.99                            </price>
    </product>
</items>

次のコードを使用して、Web サイトに情報を出力します。

<?php echo render_products_from_xml(); ?>

Web サイト自体に出力される構造を設定する PHP コマンドの関数は次のとおりです。

function render_products_from_xml(){
$counter=0;
$output = '<table class="products"> <tr>';
foreach(get_xml_catalog() as $product)
{
    $counter++;
    $output .='

                <td>
                    <div class="title">
                    <h2> '.$product->title.' </h2>
                    </div>
                    <div class="cells">
                        <img src="'.$product->img.'" height="220" width="170" />
                    </div>
                    <div class="description">
                    <span>
                        '.$product->description.'
                    </span>
                    </div>
                    <div class="price">
                        $'.$product->price.'
                    </div>
                    <div class="addToCart">
                        <a href="addToCart.php?id='.$product->id.'">Add To Cart</a>
                    </div>
                </td>';
    if($counter%4 == 0)
    {
        $output .='<tr>';
    }
}
$output .='</tr></table>';
return $output;}

PHP関数が次のようになることを望んでいました(変更はすべて大文字で行われます):

<?php echo render_products_from_xml($CATEGORY=='APPAREL'); ?>

またはこれらの行に沿った何か:

<?php echo render_APPAREL_products_from_xml(); ?>

XML ファイルから読み取った情報を分類するのに役立つ関数を追加する方法についてのヒントが必要です。また、カテゴリごとに新しい XML ファイルを作成したくありません。すべてのコードを複製して、個別の XML ファイルから情報を取得し、すべての製品を 1 つのショッピング カートに統合する必要があるからです。もっと扱いやすいものを探しています。

最後に、情報を取得して実際のショッピング カート自体をセットアップするだけのバックグラウンド関数がたくさんあります。また、私が何かについて漠然としていた場合は、問題を修正したり、質問に答えたりできるように、ためらわずに教えてください。

あなたが与えることができるすべての助けを前もってありがとう!ほんとうにありがとう。:)

4

1 に答える 1

0

get_xml_catalog()あなたのコードは明らかにXMLをフェッチしている function を示していません。

したがって、指定したコードを使用すると、関数に比較的小さな変更を加えることができますrender_products_from_xml()

function render_products_from_xml($category) {
    $counter=0;
    $output = '<table class="products"> <tr>';

    foreach (get_xml_catalog() as $product) {

        if ((string)$product->category == $category || $category == '') {

            $counter++;
            $output .= 'all that stuff'; 

            if ($counter % 4 == 0) $output .= '<tr>';
        } // if
    } // foreach

    $output .='</tr></table>';
    return $output;
}

コメント:

(1)パラメータを渡してその関数を呼び出します$category

echo render_products_from_xml('apparel');

(2)foreachループ内では<product>、カテゴリ == を持つa のみ$categoryが に追加され$outputます。

(3)$categoryが空の文字列の場合、 に every<product>が追加され$outputます。

別:

get_xml_catalog($category)その場所で選択を行うように機能を変更します。これはおそらく で行うのが最適xpathです。

于 2013-07-24T19:25:12.337 に答える