Mam następujący wygenerowany link href na stronie listy produktów
<a title="Add to My Favourites" class="a2f-link" href="http://epicurium.localhost/by-lifestyle-diet/breakfast?sort=20a&products_id=1838&action=add_to_favourites">
<img src="images/icons/favourites.png" alt="Add to My Favourites" title=" Add to My Favourites " width="16" height="16" class="fl_add" />
</a>
Plik php, który generuje ten link href to
public function add_to_favourites_link($products_id, $product_value)
{
if (!isset($this->icon)) {
$this->icon = (FAVOURITES_LISTING_ICON == 'Font Awesome') ? FA_ADD_TO_FAVOURITES : zen_image(DIR_WS_IMAGES . 'icons/' . BUTTON_ADD_TO_FAVOURITES, BUTTON_ADD_TO_FAVOURITES_ALT, '', '','class="fl_add"');
}
$page_link = zen_href_link($GLOBALS['current_page_base'], zen_get_all_get_params(array('products_id', 'action')) . 'products_id=' . (int)$products_id . '&action=add_to_favourites');
return ($this->favouritesEnabled) ? sprintf('<span class="a2f-wrap"><a title="%4$s" class="a2f-link" href="%2$s">%3$s</a><span class="a2f-value">%1$s</span></span>', $product_value, $page_link, $this->icon, BUTTON_ADD_TO_FAVOURITES_ALT) : '';
}
W innym pliku mam
case 'add_to_favourites':
if (isset($_GET['products_id'])) {
if (zen_has_product_attributes($_GET['products_id'])) {
$messageStack->add_session('product_info', sprintf(CAUTION_PRODUCT_HAS_ATTRIBUTES, zen_get_products_name($_GET['products_id'])), 'caution');
zen_redirect(zen_href_link(zen_get_info_page($_GET['products_id']), zen_get_all_get_params(array('action'))));
} else {
if (!(isset($_SESSION['customer_id']) && zen_not_null($_SESSION['customer_id']))) {
$messageStack->add_session('login', CAUTION_LOGIN_REQUIRED_FOR_FAVOURITES, 'caution');
$_SESSION['navigation']->set_snapshot();
zen_redirect(zen_href_link(FILENAME_LOGIN, '', 'SSL'));
}
$favourites = new favourites();
$favourites->addToFavourites($_GET['products_id'], (FAVOURITES_SHOW_ON_ADD == 'true') ? 'favourites' : 'header');
if (FAVOURITES_SHOW_ON_ADD == 'true') {
zen_redirect(zen_href_link(FILENAME_FAVOURITES, '', 'SSL'));
} else {
zen_redirect(zen_href_link($current_page_base, zen_get_all_get_params(array('action', 'products_id'))));
}
}
}
break;
Chcę to zmienić, aby działało przez AJAX, więc nie mam przeładowywania strony, ale szczerze mówiąc, nie mam pojęcia, od czego zacząć modyfikować łącze href w wywołanie AJAX. Jedynym AJAXem, jakiego kiedykolwiek próbowałem, było przesłanie prostego formularza za pomocą przycisku, w którym plik, do którego AJAX był powiązany, był specyficzny dla tego procesu, a nie część przełącznika.
Wyszukałem w Internecie i przez SO i nie znalazłem żadnych przykładów, jak to się robi.
Wszelkie rady i przykłady mile widziane!
1 odpowiedź
Nadaj identyfikator znacznikowi kotwicy i napisz skrypt dla AJAX
<a id="add_fav" href="javascript:void(0)" ..> img src="">...
$(document).on('click','#add_fav',function(){
//write your ajax call here
$.ajax({
url : 'your_controller_method',
type : 'GET', or "POST" select accordingly
data : {'product_id' : 1838,
....
},
dataType:'json',
success : function(data) {
alert('Data: '+data);
},
error : function(request,error){
}
});
})
or you can make javascript function and pass data to function and then set it to ajax data
Podobne pytania
Nowe pytania
jquery
jQuery to biblioteka JavaScript, rozważ także dodanie tagu JavaScript. jQuery to popularna biblioteka JavaScript działająca w różnych przeglądarkach, która ułatwia przechodzenie przez Document Object Model (DOM), obsługę zdarzeń, animacje i interakcje AJAX, minimalizując rozbieżności między przeglądarkami. Pytanie oznaczone tagiem jQuery powinno być powiązane z jQuery, więc jQuery powinno być używane przez dany kod i przynajmniej elementy związane z użyciem jQuery muszą znajdować się w pytaniu.