Próbuję załadować blok widoku produktu na stronie listy kategorii za pomocą AJAX za pomocą Ajaxify . Wszystko działa dobrze, jedynym problemem jest to, że pole opcji (childhtml „kontener1”) nie jest poprawnie załadowane. Nie pokazuje opcji.
Czy ktoś ma z tym doświadczenie, może spróbował czegoś takiego? Aktywuję produkt w kontrolerze za pomocą
$productId = (int) $this->getRequest()->getParam('product_id');
Mage::helper('catalog/product')->initProduct($productId, $this);
przed renderowaniem układu.
Myślę, że ma to coś wspólnego z faktem, że opcje są dodawane do widoku w innej części pliku catalog.xml
[...]
<PRODUCT_TYPE_configurable translate="label" module="catalog">
<label>Catalog Product View (Configurable)</label>
<reference name="product.info">
<block type="catalog/product_view_type_configurable" name="product.info.configurable" as="product_type_data" template="catalog/product/view/type/default.phtml">
<block type="core/text_list" name="product.info.configurable.extra" as="product_type_data_extra" translate="label">
<label>Product Extra Info</label>
</block>
</block>
</reference>
<reference name="product.info.options.wrapper">
<block type="catalog/product_view_type_configurable" name="product.info.options.configurable" as="options_configurable" before="-" template="catalog/product/view/type/options/configurable.phtml"/>
</reference>
</PRODUCT_TYPE_configurable>
[...]
ale nie jestem pewien, jaki jest konkretny problem.
Mam nadzieję, że ktoś wskaże mi właściwy kierunek.
Pozdrawiam, Sander Mangel
ce-1.7.0.2
ajax
Sander Mangel
źródło
źródło
Odpowiedzi:
W przeszłości mieliśmy podobny problem, gdy próbowaliśmy wprowadzić okno podręczne szybkiego podglądu na stronie listy kategorii. Oto kilka napotkanych problemów: -
/js/varien/product.js
i/js/varien/configurable.js
nie są domyślnie uwzględnione na stronie listy kategorii, które są wymagane do wygenerowania konfigurowalnych menu rozwijanych. Wymaga tego wbudowany JS poniżej.Innym problemem, jaki mieliśmy, było umieszczenie więcej niż jednego z nich na stronie, występowały problemy ze zduplikowanymi identyfikatorami, w każdym razie może to nie dotyczyć ciebie, ale upewnij się, że jeśli masz ich wiele, zniszcz je po zamknięciu.
Sposób, w jaki to zrobiliśmy, polega na utworzeniu pustego pliku kontrolera, który pozwala nam użyć unikalnego uchwytu układu, np. „”. Które możesz użyć następującego xml.
Oznaczało to, że możemy dołączyć odpowiednie bloki i dostosować niektóre aspekty zwykłej strony produktu.
Dodaliśmy to również do uchwytu, aby uwzględnić niezbędne pliki JS.
Tak wygląda również nasz plik response.phtml
Mam nadzieję, że pomoże to rzucić nieco światła na to, gdzie popełnisz błąd
źródło
Problem polega na tym, że opcje są dodawane przez JavaScript, a nie jako HTML w katalogu / product / view / type / options / configurable.html:
Twój skrypt Ajax wydaje się zastępować HTML, ale nie wykonuje w nim JS. Tę część trzeba wykonać ręcznie, ale można to zrobić na kilka sposobów:
źródło
Do tej pory udało mi się dotrzeć tylko z zaakceptowaną odpowiedzią podaną tutaj. Aby wszystko działało w trybie modalnym Twitter Bootstrap, musiałem użyć Prototypu, aby załadować konfigurowalny produkt i ustawić uruchamianie skryptów na zwróconej stronie:
Ponadto, kiedy zamknąłem mój modal, musiałem całkowicie wyczyścić zawartość:
Nie dostarczyłem tutaj kompletnego rozwiązania, ponieważ teraz, gdy znalazłem, co się dzieje, muszę przebudować kontroler i wypełnić szablon dla moich produktów, aby zwrócił schludny nagłówek itp. Do pracy z Modem Bootstrap na Twitterze. Jednak z następującymi wskazówkami powinno być łatwe załadowanie produktu i uruchomienie dołączonego do niego skryptu javascript, aby jego zawartość działała poprawnie. Nie ma potrzeby dodawania pliku product.js itp. Do strony kategorii.
źródło