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

ASP.NET MVC Discussion :

mvc2 recuperer valeur champ text


Sujet :

ASP.NET MVC

  1. #1
    Membre du Club
    Inscrit en
    Juillet 2009
    Messages
    74
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 74
    Points : 63
    Points
    63
    Par défaut mvc2 recuperer valeur champ text
    bonsoir

    je développe une application asp sous mvc2

    j'ai un champ de texte et un lien hypertexte. Je veux que quand l'utilisateur appuie sur le lien le contenue du champ de texte passe dans mon controleur

    mon controleur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    public ActionResult test(string titre)
            {
                return Content("ok"+titre+"ok");
            }
    ma vue
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    <asp:TextBox ID="textTitre" runat="server" Width="130"></asp:TextBox>
    <%: Html.ActionLink("Customers", "test", new { Controller = "Recherche", action = "test", titre = "plsAnswerMe" })%>
    quand j'écrit comme ci dessus ca passe mais quand j'ecrit comme ci desous ca ne passe pas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <%: Html.ActionLink("Customers", "test", new { Controller = "Recherche", action = "test", titre = textTitre.Text })%>
    merci de m'aider

  2. #2
    Invité
    Invité(e)
    Par défaut
    Salut,

    Il faut passer par du javascript en t'abonnant à l'évènement onclick de ton link. Dans la fonction tu récupères la valeur du texte
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    function goToTest()
    {
        var text = document.getElementById("textTitre").val();
        windows.location = "Recherche/test?titre=" + text;
    }

  3. #3
    Membre du Club
    Inscrit en
    Juillet 2009
    Messages
    74
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 74
    Points : 63
    Points
    63
    Par défaut
    merci pour ta réponse mais je ne sais pas pourquoi il ne me détecte pas le methode onclick de l'actionLink

    est ce que la syntaxe est correcte ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <%: Html.ActionLink("Customers", "test", "recherche" , new{ onclick = "methodeJS();" })%>
    et le code JS
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <script language="javascript" type="text/javascript">
            function methodeJS() {
                alert("ok");
            }
        </script>

  4. #4
    Invité
    Invité(e)
    Par défaut
    Mets tout simplement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    &lt;a onclick="taméthodejavascript();"&gt;blablabla&lt;/a&gt;
    remplaces les &lt; par < et &gt; par >.

  5. #5
    Membre du Club
    Inscrit en
    Juillet 2009
    Messages
    74
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 74
    Points : 63
    Points
    63
    Par défaut
    bon j'ai réussit a faire exécuter la fonction javascript mais elle ne s'execute pas correctement

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    <script type="text/javascript">
                function goToTest() {
                    alert("debut");
                    var text = document.getElementById("textTitre").val();
                    alert("milieu");
                    windows.location = "Recherche/test?titre=" + text;
                    alert("fin");
                }
        </script>
    il ne m'affiche que debut

  6. #6
    Invité
    Invité(e)
    Par défaut
    Essaies value() à la place de val()

  7. #7
    Membre du Club
    Inscrit en
    Juillet 2009
    Messages
    74
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 74
    Points : 63
    Points
    63
    Par défaut
    rien non plus.

  8. #8
    Invité
    Invité(e)
    Par défaut
    T'es sûr que ta zone de texte se nomme textTitre ? Si oui alors bizarre que ça ne marche pas

    Sinon si tu utilises jQuery la ligne var titre = $("#textTitre").val(); devrait marcher. En tout cas ça marche chez moi.

  9. #9
    Membre du Club
    Inscrit en
    Juillet 2009
    Messages
    74
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 74
    Points : 63
    Points
    63
    Par défaut
    oui j'ai le champ de texte correspondant

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <input type="text" id="textTitre"/>
    mais j'ai aucune idée pourquoi il ne le détecte pas

  10. #10
    Invité
    Invité(e)
    Par défaut
    Où est-ce que t'as mis le script ? dans quelle vue ? dans celle contenant la zone de texte j'espère

  11. #11
    Membre du Club
    Inscrit en
    Juillet 2009
    Messages
    74
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 74
    Points : 63
    Points
    63
    Par défaut
    voici le code source de ma vue

    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
     
    <%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<dynamic>" %>
     
    <asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server">
    	Details
    </asp:Content>
     
    <asp:Content ID="HeadContent" runat="server" ContentPlaceHolderID="HeadContent">
            <script type="text/javascript">
                function goToTest() {
                    alert("debut");
                    var text = document.getElementById("textTitre").val();
                    alert("milieu");
                    windows.location = "Recherche/test?titre=" + titre;
                    alert("fin");
                }
        </script>
    </asp:Content>
     
    <asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
     
     
     
                <input type="text" id="textTitre"/>
     
     
                <a onclick="goToTest();">blablabla</a>
     
     
    </asp:Content>

  12. #12
    Invité
    Invité(e)
    Par défaut
    Je t'avais de mettre value à la place de val dans la fonction :
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    function goToTest() {
         alert("debut");
         var text = document.getElementById("textTitre").value();
         alert("milieu");
         windows.location = "Recherche/test?titre=" + titre;
         alert("fin");
    }

  13. #13
    Membre du Club
    Inscrit en
    Juillet 2009
    Messages
    74
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 74
    Points : 63
    Points
    63
    Par défaut
    j'ai essayé avec .val() .value() et avec le JQuery mais rien

  14. #14
    Membre expérimenté
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2007
    Messages
    871
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Février 2007
    Messages : 871
    Points : 1 498
    Points
    1 498
    Par défaut
    Salut,

    Dans,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    windows.location = "Recherche/test?titre=" + titre;
    Il n' y a pas de variable "titre" déclarée mais "text" => tu envoies null en url

  15. #15
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par mermich Voir le message
    Il n' y a pas de variable "titre" déclarée mais "text" => tu envoies null en url
    Tu as raison sur la variable par contre son problème est qu'il n'arrive pas exécuter l'instruction alert("milieu");

  16. #16
    Membre expérimenté
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2007
    Messages
    871
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Février 2007
    Messages : 871
    Points : 1 498
    Points
    1 498
    Par défaut
    Sans-doute, mea cupla (je n'ai rien testé, et je passe toujours par jquery pour ce genre de manipulation).

    un petit tour sur le net: il faut utiliser .value (en propriété et non en tant que fonction)

    cf: http://www.tizag.com/javascriptT/jav...lementbyid.php

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <script type="text/javascript">
    function notEmpty(){
    	var myTextField = document.getElementById('myText');
    	if(myTextField.value != "")
    		alert("You entered: " + myTextField.value)
    	else
    		alert("Would you please enter some text?")		
    }
    </script>
    <input type='text' id='myText' />
    <input type='button' onclick='notEmpty()' value='Form Checker' />

  17. #17
    Invité
    Invité(e)
    Par défaut
    Merci de me rappeler que value n'est pas une fonction mais un attribut.

    Félicitations :ccool

  18. #18
    Membre du Club
    Inscrit en
    Juillet 2009
    Messages
    74
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 74
    Points : 63
    Points
    63
    Par défaut
    merci pour tous pour votre aide et votre paticence

    pour resumer je met le code de ma vue

    mon JS
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <script type="text/javascript">
                function goToTest() {
                    var myTextField = document.getElementById("textTitre");
                    window.location = "../recherche/test?titre=" + myTextField.value;
                    //et non pas windows.location
                }
        </script>
    Mes inputs
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    < input type="text" id="textTitre"/>
    < input type="button" onclick="goToTest()" value="Rechercher" />

  19. #19
    Membre du Club
    Inscrit en
    Juillet 2009
    Messages
    74
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 74
    Points : 63
    Points
    63
    Par défaut
    j'ai trouvé une autre solution avec JQuery et ajax qui permet d'envoyer les données de manière plus formatée avec la méthode post

    premièrement faire une référence a JQuery dans le header
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <script type="text/javascript" src="adresse du fichier JQuery"></script>
    deuxièmement le reste du code dans le body
    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
    <input type="button" value="Rechercher" id="buttonRecherche" />
    
    <script type="text/javascript">
            $("#buttonRecherche").click(function () {
                    var jsonData = "titre=" + $("#textTitre").val();
                    
                    $.ajax({
                                type: "POST",
                                url: "../recherche/test", //   Controller/action
                                data: jsonData,
                                success: function (msg) { //message récupéré du serveur
                                    alert("ok" + msg);
                                }
                     })
              });
     </script>

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

Discussions similaires

  1. recuperer un champ texte dans ("Word.Application")
    Par troxsa dans le forum VBScript
    Réponses: 2
    Dernier message: 04/06/2009, 14h27
  2. [ÉTAT] Valeur champ + texte dans un contrôle
    Par sim911 dans le forum IHM
    Réponses: 1
    Dernier message: 04/12/2007, 01h25
  3. Réponses: 8
    Dernier message: 12/07/2007, 15h57
  4. pb pour recuperer un champ texte dont le nom change
    Par birame dans le forum Langage
    Réponses: 3
    Dernier message: 05/06/2007, 09h57
  5. [SQL-VBA]Recuperer valeur champ avec requete
    Par docky dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 05/04/2007, 13h20

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