Salut !
j'utilise ruby avec ajax pour cacher ou bien faire apparaitre un DIV
suivant le rôle d'un utilisateur
edit.html.erb :
<p>
<%= f.label :role %><br />
<%= f.select(:role, %w{ Etudiant Parent Admin }, :selected =>
@user.role) %>
<%= observe_field :user_role, :frequency => 0.01, :on => "change",
:url => {:action => "selectList" }, :with => "user_role"%>
</p>
<div id="current_item" style="width :70px">
<%= f.label :parent_id %><br />
<%= f.collection_select(:parent_id, @listUser, :id, :nom, {:selected
=> @user.parent_id}) %>
</div>
user_controller :
def selectList
if params[:user_role] == "Etudiant"
respond_to do |format|
format.js
end
else
#render :js => "alert('Hello Rails');"
render :update do |page|
page[:current_item].visual_effect :Fade, :duration => 0.2
end
end
end
ce code marcher très bien , j'ai le div affiché ou caché selon le rôle
de l'utilisateur , mon problème c'est que au chargement (évènement
onload) de la page edit.html.erb je veux manipuler le div selon le rôle
charger de mon User
pour cela j'ai essayé ceci :
<script type="text/javascript">
document.observe('dom:loaded', function() {
if(document.getElementById('user_role') != "toto"){
document.getElementById("current_item").style.visibility='hidden';
}else{
document.getElementById("current_item").style.visibility='visible';
}
});
</script>
le div en question ne réagit pas au chargement de la page , c'est quoi
le problem ? est ce qu'il y a une autre solution plus clean et plus
facile ?
merci pour l'aide
on 2010-03-22 01:11
on 2010-03-22 10:40
Bonjour, Le 22 mars 2010 01:11, Anass Leo <list-incoming@andreas-s.net> a écrit : > le div en question ne réagit pas au chargement de la page , c'est quoi > le problem ? est ce qu'il y a une autre solution plus clean et plus > facile ? > Il serait peut-être plus facile de jouer avec ton template et de ne pas te servir de javascript pour cette opération. Tu pourrais rajouter un style "display:none;" dans la balise du div en question selon que ton @user a tel ou tel role. <div id="current_item" style="width :70px<%= "; display:none" if @user.role == "Etudiant" %>"> Ou un truc de ce genre.. Jean-Baptiste -- Vous avez reçu ce message, car vous êtes abonné au groupe "Railsfrance" de Google Groups. Pour transmettre des messages à ce groupe, envoyez un e-mail à l'adresse railsfrance@googlegroups.com Pour résilier votre abonnement envoyez un e-mail à l'adresse railsfrance-unsubscribe@googlegroups.com To unsubscribe from this group, send email to railsfrance+unsubscribegooglegroups.com or reply to this email with the words "REMOVE ME" as the subject.
on 2010-03-22 12:28
mais ce que je veux s'est d'avoir la possibilité de changer le rôle à partir d'un "select" et par conséquence je veux que le div disparait ou apparait à la volet c'est pour ça que j'utilise " observe_field" , ça marche bien mais mon problème c'est au chargement de la page "Edit" , le role est pre-selctionné bien sure à partir de @user.role mais le div est visible par défaut mémé si le role est "Etudiant" . j'espère que je suis assez claire Merci
Please log in before posting. Registration is free and takes only a minute.
Existing account
(Switch to SSL-encrypted connection)
NEW: Do you have a Google/GoogleMail or Yahoo account? No registration required!
Log in with Google account | Log in with Yahoo account
Log in with Google account | Log in with Yahoo account
No account? Register here.