IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Ruby on Rails Discussion :

Récupérer, valider, prérenseigner date_select


Sujet :

Ruby on Rails

  1. #1
    Nouveau membre du Club
    Inscrit en
    Mars 2002
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 44
    Points : 34
    Points
    34
    Par défaut Récupérer, valider, prérenseigner date_select
    Bonjour,

    J'utilise date select mais je n'arrive pas a récupérer les données saisies, est ce que quelqu'un aurait un exemple ?

    Merci

  2. #2
    Membre éprouvé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    657
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 657
    Points : 910
    Points
    910
    Par défaut
    Salut,

    Voici un exemple qui devrait fonctionner :

    Code Migration : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
      def self.up
        create_table :offres do |t|
          t.column :date, :date
        end
      end
    Code Vue : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <% form_for(:offre, :url => offres_path) do |f| %>
      <div>
        <label for="offre_date">Date</label>
        <%= f.date_select :date %>
      </div>
      <p>
        <%= submit_tag "Sauver" %>
      </p>
    <% end %>
    Code Controlleur (scaffold_resource tout bête) : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
      def create
        @offre = Offre.new(params[:offre])
     
        respond_to do |format|
          if @offre.save
            flash[:notice] = 'Offre sauvegardée.'
            format.html { redirect_to offre_url(@offre) }
            format.xml  { head :created, :location => offre_url(@offre) }
          else
            format.html { render :action => "new" }
            format.xml  { render :xml => @offre.errors.to_xml }
          end
        end
      end

    Il n'y a rien de particulier pour récuperer la valeur en principe
    Il faut simplement que ta colonne soit bien de type "date" ou "datetime"
    Toute la documentation Ruby on Rails : gotapi.com/rubyrails
    Mes articles :
    > HAML : langage de template pour Ruby on Rails

  3. #3
    Nouveau membre du Club
    Inscrit en
    Mars 2002
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 44
    Points : 34
    Points
    34
    Par défaut
    Je vais apporter quelques précisions :

    J'ai un tableau de véhicule et je souhaite rechercher les véhicule mis en circulation à la date saisie :

    J'ai donc mon date_select dans le formulaire :

    date_select('vehicule','date_mec',:order=>[:day,:month,:year])

    Ce qui me génère 3 liste de choix comme suit :

    <select id="vehicule_date_mec_3i" name="vehicule[date_mec(3i)]">
    <option value="1">1</option>
    <option value="2">2</option>
    ...
    <option value="30">30</option>
    <option value="31">31</option>
    </select>

    <select id="vehicule_date_mec_2i" name="vehicule[date_mec(2i)]">
    <option value="1">1</option>
    <option value="2">2</option>
    ...
    <option value="11">11</option>
    <option value="12">12</option>
    </select>
    <select id="vehicule_date_mec_1i" name="vehicule[date_mec(1i)]">
    <option value="2002">2002</option>
    <option value="2003">2003</option>
    ...
    <option value="2008">2008</option>
    <option value="2009">2009</option>
    </select>
    A partir de là, je veux récupérer dans mon contrôleur le champs.

    @date_mec = params['vehicule']['date_debut']

    Dans ma vue :
    <%=@date_mec%>
    Ne me renvoi rien alors qu'une date a été saisie.

  4. #4
    Membre éprouvé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    657
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 657
    Points : 910
    Points
    910
    Par défaut
    Ton champ ne correspond pas à un modèle ?
    Dans ce cas je pense que tu es obligé de faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    @date_mec = Date.new(params['vehicule']['date_debut(1i)'], params['vehicule']['date_debut(2i)'], params['vehicule']['date_debut(3i)'])
    Toute la documentation Ruby on Rails : gotapi.com/rubyrails
    Mes articles :
    > HAML : langage de template pour Ruby on Rails

  5. #5
    Nouveau membre du Club
    Inscrit en
    Mars 2002
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 44
    Points : 34
    Points
    34
    Par défaut
    En ajoutant une conversion des différents éléments en entier, ça passe.

    Merci !!

  6. #6
    Nouveau membre du Club
    Inscrit en
    Mars 2002
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 44
    Points : 34
    Points
    34
    Par défaut
    Bonjour,

    Je reviens vers vous afin d'avoir d'autres informations :

    En effet, j'aimerai savoir si il existe un moyen rapide concernant la validation des dates saisies via date_select() ?

    J'aimerai également pouvoir sélectionner une date par defaut pour mon date_select, est ce possible ?

    Merci par avance !

  7. #7
    Membre actif
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    172
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 172
    Points : 219
    Points
    219
    Par défaut
    Bonjour,

    Citation Envoyé par mikaelm
    En effet, j'aimerai savoir si il existe un moyen rapide concernant la validation des dates saisies via date_select() ?
    J'aimerai également pouvoir sélectionner une date par defaut pour mon date_select, est ce possible ?
    Valider les dates saisie ? Il n'est pas possible de saisir une date invalide avec date_select puisque tu la sélectionnes dans une liste préfabriquée.

    La date par défaut est celle correspondant à la valeur de ton champs date lorsque tu as appelé ton formulaire. Il suffit donc d'assigner la date par défaut à la variable appelée dans le formulaire.

    Côme

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Récupérer le résultat des validators en javascript
    Par lutecefalco dans le forum ASP.NET
    Réponses: 1
    Dernier message: 20/07/2007, 12h16
  2. Réponses: 12
    Dernier message: 05/03/2007, 11h52
  3. Réponses: 3
    Dernier message: 16/02/2007, 11h42
  4. JSP:Récupérer la valeur d'1 champ sans valider
    Par ze veritable farf dans le forum Servlets/JSP
    Réponses: 7
    Dernier message: 13/04/2006, 10h37
  5. Récupérer l'adresse de l'url qui valide le formulaire?
    Par pegase33 dans le forum Général JavaScript
    Réponses: 12
    Dernier message: 26/12/2005, 09h34

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo