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

AJAX Discussion :

[AJAX] Requete Asp, ajax, js


Sujet :

AJAX

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    192
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 192
    Par défaut [AJAX] Requete Asp, ajax, js
    Salut,

    Je savais pas ou poster mon souci alors je le fais ici.

    J'ai deux boutons (sous forme d'image) qui me permette de supprimer ou de modifier des lignes d'un tableau qui appartiennent à une base de donnée sql)...

    Donc quand je clique sur une image, j'ai un message d'alert qui s'affiche me demandant de confirmer (ou pas mon action)

    Jusque la, pas de souci.

    Mais je veux que si la personne confirme, alors ma requête de suppression se lance..
    Et la je n'arrive pas...

    J'annonce le problème :
    J'utilise l'asp pour ma requête et du javascript pour mon alert...

    Voici le code :
    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
    <td align='center' >
    <button onClick= "if (confirm('La suppression de ce critère provoquera la suppression des données correspondantes. Confirmer? '))"
    <%
    then
    suppr="delete from parc_gestion_vehicule "
    suppr= suppr & " where num_materiel = "&request.form("materiel") 
    suppr= suppr & " and dat = "&request.form("dat")
    suppr= suppr & " and km="&request.form("km")
    suppr= suppr & " and evenement="&request.form("evenement") 
    db.execute(suppr)
    end if
    %>
    >
    <img src='/Images/interdit_2.gif' alt="Supprimer une ligne" width='15' border="0">
    </button>&nbsp;
    </td>
    Il me faudrait un script en ajax pour arriver a ce que je veux faire...

    Si vous m'avez compris, merci de m'aider

  2. #2
    Membre Expert
    Avatar de emmanuel.remy
    Inscrit en
    Novembre 2005
    Messages
    2 855
    Détails du profil
    Informations personnelles :
    Âge : 56

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 855
    Par défaut
    Tu confonds code côté client (javascript) et code côté server (ton ASP).
    Ils ne s'exécutent pas ensemble.

    Sur confirmation de ton utilisateur côté client, 2 solution.
    Soit tu envoies l'information via un POST vers ta page ASP de traitement puis tu recharges ta page avec ton tableau.
    Soit soit tu envoies l'information via un POST AJAX vers ta page ASP de traitement qui fait la suppression en BDD, t'en informe en retour de la requête AJAX (côté client); à ta charge alors de supprimer la ligne de ton tableau en manipulant le DOM.

    ERE

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    192
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 192
    Par défaut
    erghh...
    Le plus optimal serait le second mais je ne connais pas l'ajax ...
    Donc on atteint une de mes limites..

    le premier consiste en un rechargement de ma page mais je ne peux pas supprimer la ligne de ma bd c'est ca ?
    Dans ce cas ce n'est pas une solution ...

    RECAPITULONS :

    Je propose a un utilisateur de saisir des paramétres pour un vehicule (date km evenement..)
    Il valide, et les paramètres tapés sont rentré dans ma BD et s'affiche par un rechargement de ma page.....

    A la fin de chaque ligne, il y a un checkbox qui si elle est coché doit permettre de supprimer la ligne (ou les lignes)..
    j'ai fait un formulaire ...
    Tu me suis toujours ?

    Regarde donc

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <form name='affichage' method='post' action=''>
    <td align='center' >
    <input OnCheckedChanged="document.getElementById(3).style.display='';"  Check="&j&" type='checkbox' name='supp<% =i %>' >
    </td> ...
     
     <% 'si au moins un de mes boutons est coché alors ...%>
    	  	<tr>
    		  <td></td><td></td><td></td><td></td><td></td><td></td><td></td>
    		  <td align='center'><input name='validation' type='submit' value='Valider' ></td>
    		</tr>
    		<% 'fin de si %>

  4. #4
    Membre Expert
    Avatar de emmanuel.remy
    Inscrit en
    Novembre 2005
    Messages
    2 855
    Détails du profil
    Informations personnelles :
    Âge : 56

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 855
    Par défaut
    Soit tu envoies l'information via un POST vers ta page ASP de traitement puis tu recharges ta page avec ton tableau.
    Cela fonctionne parfaitement:

    1. dans ta page initiale (page1.asp) tu disposes de ton formulaire qui pointe son action vers ttt_del_db.asp
    2. tu mets un champ rowId qui correspond à l'id à supprimer
    3. sur chaque ligne de ton tableau tu mets un bouton supprimer qui va demander confirmation et si ok tu affectes le champs rowID et tu valides le formulaire. Cela déclenche ton script ttt_del_db.asp et tu reroute vers ta page initiale pour la réafficher sans la ligne.


      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
      page1.asp
      
      <form name="frmDel" action="ttt_del_db.asp" method="POST">
         <input type="hidden" name="rowId" value="" />
      ...
         <tr><td>.... </td><td><button onclick="delete(123)">Suppr</button></td></tr>
      
      ...
      </form>
      
      <script>
      function delete(id) {
         if confirm(....) {
             document.frmDel.rowId.value=id;
             document.frmDel.submit();
         }
      }
      <script>
      
      
      
      
      ttt_del_db.asp
      <%
      ...
      dim idToDelete
      idToDelete = request.form("rowID")
      
      cnx.execute("delete from table1 where id=" & idToDelete);
      
      response.redirect("page1.asp");
      
      %>



    ERE

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    192
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 192
    Par défaut
    c'est quoi ton
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <button onclick="delete(123)">Suppr</button>
    enfin le 123 ?

    ps : j'étais parti sur l'idée de checkbox .. une checkbox qui s'affiche à chaque ligne et un bouton valider en dessous de toutes ...

    Quand il valide, toutes les checkbox cochées permettront de supprimer les lignes qui correspondent.

  6. #6
    Membre Expert
    Avatar de emmanuel.remy
    Inscrit en
    Novembre 2005
    Messages
    2 855
    Détails du profil
    Informations personnelles :
    Âge : 56

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 855
    Par défaut
    Citation Envoyé par ririch Voir le message
    c'est quoi ton
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <button onclick="delete(123)">Suppr</button>
    enfin le 123 ?

    ps : j'étais parti sur l'idée de checkbox .. une checkbox qui s'affiche à chaque ligne et un bouton valider en dessous de toutes ...

    Quand il valide, toutes les checkbox cochées permettront de supprimer les lignes qui correspondent.
    Oups, désolé pour le bouton, j'ai fait au plus vite et donc pas assez attention !

    Dans delete(123), "123" correspond à la clé primaire de la ligne à supprimer.

    Concernant le bouton à remplacer par une checkbox, tu peux adapter ainsi (à peu de choses prêt car je n'ai pas fait d'ASP depuis quelques années ):

    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
     
    page1.asp
     
    <form name="frmDel" action="ttt_del_db.asp" method="POST">
       <input type="hidden" name="rowId" value="" />
    ...
       <tr><td>.... </td><td><input type="chekbox" name="rowId" value="123"></td></tr>
       <tr><td>.... </td><td><input type="chekbox" name="rowId" value="456"></td></tr>
     
    ...
     
    <input type="submit" value="Supprimer" />
    </form>
     
     
    ttt_del_db.asp
    <%
    ...
    dim idToDelete
    dim i
     
    for i=1 to request.form("rowId").count
       idToDelete = request.form("rowId")(i)
       cnx.execute("delete from table1 where id=" & idToDelete);
    next
     
     
    response.redirect("page1.asp");
     
    %>
    ERE

  7. #7
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut
    @ririch > Comme 2 questions (différentes) ont été posées sur le même traitement, attention à ce que les solutions soient compatibles
    Pour l'instant il me semble que oui ...

    @ERE > L'autre discussion ne visant qu'à faire afficher le bouton que si une des checkbox est cochée ...

    A+

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    192
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 192
    Par défaut
    alors détail :
    Moi j'avais fait (lol) ..
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input id='supp<% =i %>' type='checkbox' name='supp<% =i %>'  onclick='test_chckbx();'>
    avec une incrémentation de l'id et du nom en fonction du nombre de checkbox qui apparaisse...
    Toi tu me dis de faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <input type="chekbox" name="rowId" value="123">
    <input type="chekbox" name="rowId" value="456">
    donc un nom semblable et une valeur qui change

    Derriere une checkbox il y a une ligne de ma BD on va dire ... donc

    Comment ma requête va comprendre que c'est les checkbox 1 et 4 (par exemple) qui doivent être supprimé,et donc les lignes de ma bd qui correspondent au paramètres

    Et toc :p

  9. #9
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut
    Citation Envoyé par ririch Voir le message
    Comment ma requête va comprendre que c'est les checkbox 1 et 4 (par exemple)
    Par leur value ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.forms['frmDel'].elements['rowId']
    te retournera le tableau de checkbox.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    var leTab = document.forms['frmDel'].elements['rowId'];
    for (var i=0; i<leTab.length; i++)
        if (leTab[i].checked)
           alert(leTab[i].value + ' est coché');
    A+

  10. #10
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    192
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 192
    Par défaut
    Citation Envoyé par E.Bzz Voir le message
    Par leur value ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.forms['frmDel'].elements['rowId']
    Oui mais la on a 'RowiD' qui est toujours identique ..
    Moi j'incrémente a chaque tour de boucle ...

    Et je le place ou ton code ?

  11. #11
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut
    Citation Envoyé par ririch Voir le message
    Oui mais la on a 'RowiD' qui est toujours identique ..
    Moi j'incrémente a chaque tour de boucle ...
    C'est vrai que c'est plutôt pour les radio qu'on met des name identique
    A mon avis, tu peux laisser ton compteur dans le name.
    Tu n'auras qu'à reprendre le même style de boucle que celle que je t'ai donné pour l'affichage du bouton.
    Tu pourras récupérer les checkbox cochées, et stocker ainsi leur value pour les envoyer au serveur qui les supprimeras de la bdd ...

    Citation Envoyé par ririch Voir le message
    Et je le place ou ton code ?
    Ce n'était qu'un exemple ...

    A+

  12. #12
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    192
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 192
    Par défaut
    SI je laisse tomber mes names alors on va dire que si j'affiche 3 checkbox, elles auront les trois le même nom ....
    Si la 2eme est cochée, alors mon button validé apparait...
    Comment il va savoir que c'est la checkbx 2 et pas la 1 et 3 qui est coché si elles ont le même nom ?
    Je dois me référé a leur value ? a leur id ?

  13. #13
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut
    Citation Envoyé par E.Bzz Voir le message
    Par leur value ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.forms['frmDel'].elements['rowId']
    te retournera le tableau de checkbox.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    var leTab = document.forms['frmDel'].elements['rowId'];
    for (var i=0; i<leTab.length; i++)
        if (leTab[i].checked)
           alert(leTab[i].value + ' est coché');
    A+
    Pour ton traitement, peu importe que la checkbox soit affichée en 3° ou 27° position : ce qui compte c'est que tu puisses détecter celles cochées, et envoyer au serveur l'identifiant ("123", "562") de la valeur à supprimer en bdd ....

    Tu as tout pour le faire ci-dessus

    A+

  14. #14
    Membre Expert
    Avatar de emmanuel.remy
    Inscrit en
    Novembre 2005
    Messages
    2 855
    Détails du profil
    Informations personnelles :
    Âge : 56

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 855
    Par défaut
    Re-Salut,

    @E.Bzz: je ne savais qu'il y avait une autre discussion en cours

    @ririch: si tu utilises plusieurs checkbox avec le même name, alors tu les retrouveras sous la forme d'un tableau côté server . D'où la boucle sur le tableau:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    for i=1 to request.form("rowId").count
       idToDelete = request.form("rowId")(i)
       cnx.execute("delete from table1 where id=" & idToDelete);
    next
    Vas y progressivement, fais un essai et une fois que tu verras que tu reçois bien tes données côté server et que les suppressions se passent correctement, alors tu passeras tranquillement à ta vérification côté client.

    ERE

Discussions similaires

  1. [AJAX] Perdu dans Ajax (SQL+ASP)
    Par Gabyro dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 18/08/2008, 15h40
  2. [Ajax] Requetes et balises
    Par LoK dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 20/08/2006, 19h30
  3. [AJAX] requetes sécurisées
    Par Sniper37 dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 26/04/2006, 16h06
  4. [AJAX] Ajax et ASP.NET
    Par boleduch dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 02/03/2006, 16h15

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