0

私はウェブサイトhttp://mytempsite.net/gotie/mixandmatch用のカスタムシャツビルダーを構築しています

私がセットアップしたのはステップ 1 です。彼らは 12 種類のシャツからシャツの色を選択し、次にネクタイを選択できる次のステップに進みます。その次のページに変数を渡して、赤いシャツなどのネクタイが付いた画像のみをプルするように指示できるようにする必要があります。

これを行う私の考えは、画像の alt または title タグでその属性を持ち、表示されている現在の画像からその属性を取得することです。

私が知る必要があるのはどのようにですか?

このコードを最初に使用してみました

<?php
    $url=$this->helper('core/url')->getCurrentUrl();;

    $html = file_get_contents($url);

    $doc = new DOMDocument();
    @$doc->loadHTML($html);

    $divs = $doc->getElementByID('loadarea');

    foreach ($divs as $div) {
           echo "Found the loadarea div <br />";
    }
?>

しかし、うまくいかず、ページの読み込みが非常に遅くなりました。

念のため、ここにサムネイルのコードを示します

<?php 
    $products = Mage::getModel('catalog/product')->getCollection();

    foreach($products as $prod) {
        $product = Mage::getModel('catalog/product')->load($prod->getId());
        $pro_title = $product->getName();
        $img = $product->getImageUrl();

        echo "<a href='".$img."' title='".$pro_title."' rel='enlargeimage' rev='targetdiv:loadarea,enabletitle:no,trigger:click,preload:none,fx:fade'><img src='".$img."' width='100px'/></a>";

}?>

ローカライズされすぎないように、この質問を正しく表現したことを願っています。もしそうなら、私はそれを言い換えます。

4

2 に答える 2

0

私がやったのは、サムネイル画像をクリックすると、非表示のテキストボックスがそのシャツのproduct_idを取得し、次のページに移動すると、その製品の製品画像が自動的にプルされることです. 将来誰かがこれを行う必要がある場合に備えて、フォーム全体のコードを挿入しました:)

ハッピーコーディング!

         <form id="GoTie_Builder" method="POST" action="/gotie/mixandmatch/tie">
                                <script>
                                function changeInput(pro_id)
                                {
                                    var my_form = document.getElementById('GoTie_Builder');
                                    my_form.shirt_color.value = pro_id;
                                }

                                function changePattern(pattern)
                                {
                                    var my_div = document.getElementById('shirt_zoom');
                                    my_div.innerHTML = '<img src="http://www.tuxedojunction.com/Content/Products/Vests/LegacyBlueVelvet_s_1.jpg" />';

                                }

                                </script>
                                <div id="shirt_zoom" style="width:300px; height:100px;">
                                <img src="http://www.tuxedojunction.com/Content/Products/Vests/LegacyBlueVelvet_s_1.jpg" />
                                </div>

                                <div class="Builder_thumbnails" style="float:left;">

                            <?php 
                                $cat_id = 8;
                                $products = Mage::getModel('catalog/category')->load($cat_id)->getProductCollection();
                                echo '<input id="shirt_color" type="text" name="shirt_color" value="0">';
                                foreach($products as $prod) {
                                    $product = Mage::getModel('catalog/product')->load($prod->getId());

                                    $pattern = $this->helper('catalog/image')->init($product, 'thumbnail');

                                    //echo "<img onclick='changeInput($pro_id)' class='product_thumbnail' src='".$pattern."' alt='".$pro_id."' width='100px'/>";


                                    $pro_id = $product->getId();
                                    $pro_title = $product->getName();
                                    $img = $product->getImageUrl();


                                    $input_id = "shirt_color";
                                    echo "<a href='".$img."' title='".$pro_title."' rel='enlargeimage' rev='targetdiv:loadarea,enabletitle:no,trigger:click,preload:none,fx:fade'><img onclick='changeInput($pro_id)' class='product_thumbnail' src='".$this->helper('catalog/image')->init($product, 'thumbnail')."' alt='".$pro_id."' width='100px' height='100px'/></a>";

         }?>

  </div>      


         <div id="loadarea" style="width:300px;top: 0px;right: 0px;float: right;position: relative;"><img src="http://cdn4.blackenterprise.com/wp-content/blogs.dir/1/files/2011/07/White-Shirt-620x480.jpg" width="500px;"/>

         </div>
         <input type="submit" value="Choose a Tie" />
         </form>
于 2013-05-02T15:35:14.033 に答える
0

$someVar = get_field('image file') は、画像内のすべてのタグ付きデータの配列を返す必要があると思います。その後、配列からデータにアクセスできます (つまり、$someVar['alt'])。

画像をオブジェクトにする必要のない、より簡単なソリューションを次に示します。

$html=file_get_contents("URL OF YOUR SITE");
$doc = new DOMDocument();
@$doc -> loadHTML($html);
    // Add a class to your big image to identify it (ex. selected)
$tags = getElementsByClassName($doc, 'selected');
foreach ($tags as $tag) {
    echo $tag->getAttribute('alt');
}


    // Not my function but its very useful.  I'll track down where I got it
    // and add source later.    
function getElementsByClassName(DOMDocument $DOMDocument, $ClassName) {
    $Elements = $DOMDocument -> getElementsByTagName("*");
    $Matched = array();

    foreach($Elements as $node)
    {
        if( ! $node -> hasAttributes())
            continue;

        $classAttribute = $node -> attributes -> getNamedItem('class');

        if( ! $classAttribute)
                continue;

        $classes = explode(' ', $classAttribute -> nodeValue);

        if(in_array($ClassName, $classes))
            $Matched[] = $node;
    }

    return $Matched;
}
于 2013-05-01T19:08:25.207 に答える