2013-05-01 25 views
0
圖像的另一個屬性

我建立一個定製襯衫製造商的網站http://mytempsite.net/gotie/mixandmatch如何獲得稱號或PHP

我所擁有的設置是第一步,他們將選擇來自12點不同的襯衫襯衫顏色和然後繼續下一步,他們將能夠選擇一條領帶。我需要能夠傳遞一個變量到下一個頁面,告訴它只會拉扯帶有領帶的圖像,例如紅襯衫。

我的想法是通過在圖像alt或標題標籤處具有該屬性,然後從當前正在顯示的圖像中獲取該屬性。

我需要知道的是如何?

我嘗試使用此代碼作爲啓動

<?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>"; 

}?> 

我希望我的措辭正確這個問題,因爲不被太本地化。如果是的話,我會重新說說它。

回答

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> 
0

我相信$ someVar = get_field('圖像文件')應該返回圖像中所有標記數據的數組。然後你可以訪問數組中的數據(即$ 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; 
} 
+0

但是,我該怎麼做到它只獲取活動大照片的ALT?你看過網站,所以你知道我指的是什麼? – 2013-05-01 19:19:43

+0

對不起,我的壞。我將用更簡單的解決方案編輯我的原始帖子。 – 2013-05-01 19:27:13

+0

每當大圖發生變化時,這會自動更新嗎? – 2013-05-01 20:20:50