Modifier Form action=# en fonction du résultat souhaité

cs_eli42 Messages postés 143 Date d'inscription mardi 24 décembre 2002 Statut Membre Dernière intervention 11 juillet 2023 - Modifié le 10 juil. 2023 à 21:56
cs_eli42 Messages postés 143 Date d'inscription mardi 24 décembre 2002 Statut Membre Dernière intervention 11 juillet 2023 - 11 juil. 2023 à 15:48

Bonjour tout le monde

Je dois modifier le action d'un formulaire a trois reprise

du coup en fonction du boutton submit je modifier le action

<script>
      function _chercher_CL(sc) {
        if (sc == 0) {
        document.getElementById('clfrs').value='0';
       document.getElementById('globalclient').setAttribute("action","../saisie-client/fonction/client_chercher");}
        if (sc == 1) document.getElementById('globalclient').setAttribute("action","../saisie-client/fonction/detail_client");
        if (sc == 2) document.getElementById('globalclient').setAttribute("action","../saisie-client/fonction/entete_post");<        
          document.getElementById('rechercheGOCL').click();
      }
</script>

Jusqu'a la tout va bien

ensuite je recupre le resultat du post en fonction du résultat en fonction du action

<script>
      function _client_chercher(oFormElement) {
      var xhr = new XMLHttpRequest();
      xhr.onload = function () {
      let text = xhr.responseText;

      if (document.getElementById('globalclient').action == "http://localhost/backoffice_admin/saisie-client/fonction/client_chercher"){document.getElementById('affichage_client').innerHTML = xhr.responseText;}
      if (document.getElementById('globalclient').action == "http://localhost/backoffice_admin/saisie-client/fonction/detail_client"){document.getElementById('detail_client').innerHTML = xhr.responseText;}
      
      if (document.getElementById('qtecl').value != 0){      
      let text = document.getElementById('qtecl').value;
      const retour = text.split("~");
      document.getElementById('clfrs').value = retour[0];
      document.getElementById('fiche').value = retour[1];
      _charger_client(retour[0],retour[1]);
      document.getElementById('qtecl').value = 0;
      }
      
      if (document.getElementById('globalclient').action == "http://localhost/backoffice_admin/saisie-client/fonction/entete_post"){
      document.getElementById('SECTIONclient').setAttribute("style","display:none");
      document.getElementById('SECTIONsaisie').setAttribute("style","display:block");
      }

      }
      xhr.open(oFormElement.method, oFormElement.getAttribute('action'));
      xhr.send(new FormData(oFormElement));
      return false;
      }        
   </script>

Pour que ca fonctionne,  je dois pour cela je dois mettre le chemin complet :

if (document.getElementById('globalclient').action == "http://localhost/backoffice_admin/saisie-client/xxxx.php

Il n'y aurait pas plus court et plus simple a la lecture ?

Alert('Beau temps, belle mer');

Et mettez vous à l'ombre.

Jorgio


2 réponses

cs_eli42 Messages postés 143 Date d'inscription mardi 24 décembre 2002 Statut Membre Dernière intervention 11 juillet 2023 1
11 juil. 2023 à 15:48

Bonjour Karamel

Merci d'avoir pris le temps de te pencher sur mon problème

Je voulais absolument supprimer le chemin complet de action

Pour m'éviter de modifier le chemin si reploiement sur une autre plateforme du coup j'ai triché

c'est pas propre mais bon ca soulage les MAJ j'ai modifié par l'ajout de un <input hidden> :

function _chercher_CL(sc) {
....   
    document.getElementById('action').value = sc;
....
}

function _client_chercher(oFormElement) {
....
    var action = document.getElementById('action').value;
    if (action == 0){document.getElementById('affichage_client').innerHTML = xhr.responseText;}
    if (action == 1){document.getElementById('detail_client').innerHTML = xhr.responseText;}
    if (action == 2){
      document.getElementById('SECTIONclient').setAttribute("style","display:none");
      document.getElementById('SECTIONsaisie').setAttribute("style","display:block");
    }
....
}

Alert('Beau temp, belle mer)

Jorgio


1
@karamel Messages postés 1856 Date d'inscription vendredi 9 mai 2008 Statut Modérateur Dernière intervention 11 juin 2024 153
Modifié le 10 juil. 2023 à 22:18

bonjour

en de but de script tu peut mettre la valeur dans une variable

function _client_chercher(oFormElement) {
      var xhr = new XMLHttpRequest();
      xhr.onload = function () {
      let text = xhr.responseText;
      let adresse=document.getElementById('globalclient').action

      if (adresse == "http://localhost/backoffice_admin/saisie-client/fonction/client_chercher"){document.getElementById('affichage_client').innerHTML = xhr.responseText;}
      if (adresse == "http://localhost/backoffice_admin/saisie-client/fonction/detail_client"){document.getElementById('detail_client').innerHTML = xhr.responseText;}
      

0
Rejoignez-nous