2010-11-28 2 views
1

J'ai un select_tag qui affiche les types de catégories de produits. Je veux faire une mise à jour Ajax lorsqu'un utilisateur sélectionne une catégorie de produit et liste tous les produits dans un div au-dessous de la balise de sélection.select_tag Ajax mise à jour avec Rails3 + Jquery

Je pense que je serai capable de gérer la partie d'affichage du produit avec un modèle partiel et js. Mais je ne sais pas comment implémenter le

sélection de catégorie de produit faire une requête ajax (avec paramètres) au contrôleur de rails. (Presque tous les exemples de web est se lient avec ajax forme updation ....)

quelqu'un peut me aider OUT- merci à l'avance

J'utilise des rails 3, Jquery

acclamations

sameera

Répondre

4

Il serait utile que vous nous donniez plus d'informations sur vos modèles de données. Je vais esquisser ce que je pense que vous avez basé sur votre question.

class Product < ActiveRecord::Base 
    belongs_to :category 
end 

class Category < ActiveRecord::Base 
    has_many :products 
end 

et en supposant que vous avez vos itinéraires mis en place:

resources :categories do 
    resources :products 
end 

ce que vous devez faire est wireup l'événement change du select_tag pour demander une liste de produits à base de l'identifiant de la catégorie qui a été sélectionné .

$('select#categories').change(function(){ 
    var category_id = $(this).find('option:selected').val(); 
    $.getJSON(
    '/categories/' + category_id + '/products', 
    function(response) { 
     // render your template on the page here 
    } 
); 
}); 

J'ai écrit un jQuery plugin pour simplifier les interactions RESTful de base avec un contrôleur Rails, il pourrait être écrit comme:

$('select#categories').change(function(){ 
    var category_id = $(this).find('option:selected').val(); 
    $.read(
    '/categories/{category_id}/products', 
    { category_id: category_id }, 
    function (response) { 
     // render your template 
    } 
); 
}); 

Alors que $.read n'est pas beaucoup plus simple que $.getJSON, les autres opérations vous sauvera beaucoup de frappe.

Le reste de l'implémentation réside dans le contrôleur, mais vous avez beaucoup plus de marge de manœuvre pour implémenter cela, donc je ne peux pas vraiment deviner ce qui vous serait utile sans plus d'informations.

+0

Bonjour Adam. merci pour les détails explication .. Désolé de ne pas donner beaucoup de détails .. Je vais essayer votre code et mettre à jour le statut ... merci encore ... sameera – sameera207

+0

merci adam, je l'ai enfin mis en marche, merci pour l'aide – sameera207

+1

@ sameera207, pourriez-vous s'il vous plaît partager le code qui a finalement fonctionné pour vous? travaillant sur une tâche similaire moi-même et trouvé ce poste. Merci beaucoup! – Lievcin

Questions connexes