Salut à tous, je suis encore avec mon app de gestion de tickets d'incidents et j'ai besoin de faire passer la valeur d'une variable dans Rails pour ensuite l'analyser dans la vue avec un IF.
Voici la vue :Et mon script Rails pour récupérer la valeur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41 <%= form_for(@incident) do |f| %> <% if @incident.errors.any? %> <div id="error_explanation"> <h2><%= pluralize(@incident.errors.count, "error") %> prohibited this incident from being saved:</h2> <ul> <% @incident.errors.full_messages.each do |message| %> <li><%= message %></li> <% end %> </ul> </div> <% end %> <div class="field"> <%= f.label "Titre" %><br> <%= f.text_field :title %> </div> <div class="field"> <%= f.label "Contenu" %><br> <%= f.text_field :content %> </div> <div class="field" style="display: none;"> <%= f.label "Nom d'utilisateur" %><br> <%= select_tag("incident[user_id]", options_for_select(User.find_by_sql("SELECT `users`.* FROM `users` WHERE `id` = #{current_user.id}").collect{ |u| [u.name, u.id]})) %> </div> <div class="field"> <%= f.label "Catégorie de l'incident" %><br> <%= cat_select = select_tag("incident[category_id]", options_for_select(@categori = Category.find_by_sql("SELECT `categories`.* FROM `categories`").collect{ |u| [u.name, u.id]}), :onchange =>"recupere_valeur(); parent.location='javascript:location.reload();'")%> </div> <div class="field"> <%= f.label "Sous_Catégorie de l'incident" %><br> <%= cat_select = select_tag("incident[sous_category_id]", options_for_select(SousCategory.find_by_sql("SELECT `sous_categories`.* FROM `sous_categories` ").collect{ |u| [u.name, u.id]}))%> </div> <div class="field" style="display: none;"> <%= f.label "Type de l'évenement"%> <%= f.number_field :evenement_type_id, :value => 1 %> </div> <div class="actions"> <%= f.submit %> </div> <% end %>Et donc quand je fais le @param.inspect il ne m'affiche rien... Comment je peux la faire passer ?Merci !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 <script> function recupere_valeur() { select = document.getElementById("incident_category_id"); choice = select.selectedIndex; // Récupération de l'index du <option> choisi valeur_cherchee = select.options[choice].value; alert(valeur_cherchee);} // Récupération du texte du <option> d'index "choice" </script> <% @param = capture do %> <%= javascript_tag "document.write(getParameter(valeur_cherchee));" %> <% end %> <%= @param.inspect%>
Partager