[jQuery] .load() - Wersja do druku
+- Forum Webmastera, HTML, CSS, PHP, MySQL, Hosting, Domeny - Forum dla Webmasterów (https://www.webmastertalk.pl)
+-- Dział: Technologie internetowe - tworzenie stron WWW (https://www.webmastertalk.pl/forum-technologie-internetowe-tworzenie-stron-www)
+--- Dział: xHTML, CSS, JavaScript (https://www.webmastertalk.pl/forum-xhtml-css-javascript)
+--- Wątek: [jQuery] .load() (/thread-jquery-load)
|
[jQuery] .load() - rastabandita - 08-07-2012
Witam serdecznie.
W moim sklepie internetowym (silnik ZenCart 1.3.9) staram się stworzyć coś w stylu 'atrybuty zależne od atrybutów' tzn. że wybierając format np. a4 cena za gramaturę papieru różni się od cen formatu a5. Całość działa, jednak podczas wyboru poszczególnego z atrybutów strona przeładowuje się ( użyłem ) Kod: window.location = "index.php?main_page=product_info&products_id=" + $(this).attr('value') + '#kotwica';
. Chcąc pozbyć się tego znalazłem funkcję .load(). I wygląda to w ten sposób
Kod: $(document).ready(function(){
$('#wybierz_format').change(function()
{
$("#productGeneral").load("index.php?main_page=product_info&products_id="+ $(this).attr('value') + '#kotwica #productGeneral, #productMainImage ', function() {
$.getScript("js/linker.js");
});
});
});
Rezultat jest taki że zawartość strony wgrywa mi się w div #productGeneral , jednak bez skryptów tzn. że np zmieniając ponownie format nic się nie dzieje. Na google najczęściej znajduje rozwiązanie w stylu
i faktycznie po dodaniu Kod: $.getScript("js/linker.js");
mogę zmieniać formaty. Jednak nadal brakuje załadowanych skryptów.
I tutaj mam problem ponieważ skrypty (obliczania ceny zaraz po wybraniu danego atrybutu (ajax), oraz lightbox minatur produktów) nie posiadają stricte plików *.js.
.load() zignorował
Kod: <!--bof Main Product Image -->
<?php
if (zen_not_null($products_image)) {
?>
<?php
/**
* display the main product image
*/
require($template->get_template_dir('/tpl_modules_main_product_image.php',DIR_WS_TEMPLATE, $current_page_base,'templates'). '/tpl_modules_main_product_image.php'); ?>
<?php
}
?>
Zawartość pliku tpl_modules_main_product_image.php
Kod: <?php require(DIR_WS_MODULES . zen_get_module_directory(FILENAME_MAIN_PRODUCT_IMAGE)); ?>
<div id="productMainImage" class="centeredContent back">
<?php // bof Zen Lightbox 2008-12-15 aclarke ?>
<?php
if (ZEN_LIGHTBOX_STATUS == 'true') {
if (ZEN_LIGHTBOX_GALLERY_MODE == 'true' && ZEN_LIGHTBOX_GALLERY_MAIN_IMAGE == 'true') {
$rel = 'lightbox-g';
} else {
$rel = 'lightbox';
}
?>
<script language="javascript" type="text/javascript"><!--
document.write('<?php echo '<a href="' . zen_lightbox($products_image_large, addslashes($products_name), LARGE_IMAGE_WIDTH, LARGE_IMAGE_HEIGHT) . '" rel="' . $rel . '" title="' . addslashes($products_name) . '">' . zen_image($products_image_medium, addslashes($products_name), MEDIUM_IMAGE_WIDTH, MEDIUM_IMAGE_HEIGHT) . '<br /><span class="imgLink">' . TEXT_CLICK_TO_ENLARGE . '</span></a>'; ?>');
//--></script>
<?php } else { ?>
<?php // eof Zen Lightbox 2008-12-15 aclarke ?>
<script language="javascript" type="text/javascript"><!--
document.write('<?php echo '<a href="javascript:popupWindow(\\\'' . zen_href_link(FILENAME_POPUP_IMAGE, 'pID=' . $_GET['products_id']) . '\\\')">' . zen_image($products_image_medium, addslashes($products_name), MEDIUM_IMAGE_WIDTH, MEDIUM_IMAGE_HEIGHT) . '<br /><span class="imgLink">' . TEXT_CLICK_TO_ENLARGE . '</span></a>'; ?>');
//--></script>
<?php // bof Zen Lightbox 2008-12-15 aclarke ?>
<?php } ?>
<?php // eof Zen Lightbox 2008-12-15 aclarke ?>
<noscript>
<?php
echo '<a href="' . zen_href_link(FILENAME_POPUP_IMAGE, 'pID=' . $_GET['products_id']) . '" target="_blank" rel="nofollow">' . zen_image($products_image_medium, $products_name, MEDIUM_IMAGE_WIDTH, MEDIUM_IMAGE_HEIGHT) . '<br /><span class="imgLink">' . TEXT_CLICK_TO_ENLARGE . '</span></a>';
?>
</noscript>
</div>
Bloki <script> .. </script> pewnie zostały pominięte ale dlaczego wstawiając nawet sam prosty tekst w tym pliku nie zostaje on wyświetlany w miejscu miniatury tylko po prostu jest pomijany?
Moduł odpowiedzialny za wyświetlenie atrybutów co dziwne nie został pominięty. (?!)
Mam nadzieję że jasno przedstawiłem mój problem. W jaki sposób mogę to rozwiązać?
|