Problème modification javascript

yazworld Messages postés 2 Date d'inscription mercredi 1 novembre 2000 Statut Membre Dernière intervention 4 janvier 2007 - 3 janv. 2007 à 20:24
PetoleTeam Messages postés 3426 Date d'inscription lundi 26 décembre 2005 Statut Membre Dernière intervention 14 janvier 2011 - 4 janv. 2007 à 06:21
Bonsoir à tous,


Depuis un moment je travail sur une application de base de données qui dispose d'un module permettant un interfaçage web.


Cette interface Web est modifiable vie un fichier de style css
ainsi que par l'intermédiaire d'un fichier javascript .js . Mon souci
est que je ne maîtrise pas du tout le javascript.


Voici le problème :


Je dispose donc d'un fichier .js dans lequel son définit différentes fonctions. Je voudrais modifier l'une d'elle à savoir :


function Link(Zone,Terme,Champ,Base,Fenetre) {


Terme = Accent(Terme);


if ( Champ !"" ) Champ "/(" + Champ + ")";


// Transfert des éléments dans le formulaire


document.LIEN.t2005.value = document.forms[Base].t2005.value;


document.LIEN.t2006.value = document.forms[Base].t2006.value;


if ( Base == "LINK" ) {


document.LIEN.t2018.value = "";


} else {


document.LIEN.t2018.value = "1";


}


if ( Fenetre == "" ) {


document.LIEN.t2004.value = "1";


document.LIEN.t2000.value = "("" + Terme + """ + Champ + ")";


document.LIEN.t2001.value = "(#" + Terme + "#" + Champ + ")";


document.LIEN.t2002.value = Zone + "=" + Terme ;


document.LIEN.action = document.LIEN.t2009.value + "/[in=genisis" +document.LIEN.t2013.value + "0.in]/";


document.LIEN.submit();


} else {


var URL=document.LIEN.t2009.value + "/[in=genisis" +document.LIEN.t2013.value + "0.in]/";


URL=URL + "?t2000=" + escape("("" + Terme + """ + Champ + ")");


URL=URL + "&t2001=" + escape("(#" + Terme + "#" + Champ + ")");


URL=URL + "&t2002=" + escape(Zone + "=" + Terme);


URL=URL + "&t2003=" + escape(document.LIEN.t2003.value);


URL=URL + "&t2004=" + escape(document.LIEN.t2004.value);


URL=URL + "&t2005=" + escape(document.LIEN.t2005.value);


URL=URL + "&t2006=" + escape(document.LIEN.t2006.value);


URL=URL + "&t2007=" + escape(document.LIEN.t2007.value);


URL=URL + "&t2009=" + escape(document.LIEN.t2009.value);


URL=URL + "&t2010=" + escape(document.LIEN.t2010.value);


URL=URL + "&t2011=" + escape(document.LIEN.t2011.value);


URL=URL + "&t2012=" + escape(document.LIEN.t2012.value);


URL=URL + "&t2013=" + escape(document.LIEN.t2013.value);


URL=URL + "&t2014=" + escape(document.LIEN.t2014.value);


URL=URL + "&t2015=" + escape(document.LIEN.t2015.value);


URL=URL + "&t2016=" + escape(document.LIEN.t2016.value);


URL=URL + "&t2017=" + escape(document.LIEN.t2017.value);


URL=URL + "&t2018=" + escape(document.LIEN.t2018.value);



msg=window.open(URL,"Index","location=no,status=no,toolbar=no,directories=no,resizable=yes,menubar=no,scrollbars=yes,"+Fenetre);


msg.focus();


}


}



pour ceux qui se demanderait ce qu'est la fonction Accent, voici :


function Accent(Terme) {


var ACCAPP = "CueaaaaceeeiiiAAEooouuyOUaiounN";


var ACCWIN = "ÇüéâäàåçêëèïîìÄÅÉôöòûùÿÖÜáíóúñÑ";


var i,j;


var CarAns,CarApp;


for (i=0; i<31; i++) {


CarAns = ACCWIN.charAt(i);


CarApp = ACCAPP.charAt(i);


j=Terme.indexOf(CarAns,0);


while ( j != -1) {


Terme = Terme.replace(CarAns,CarApp);


j=Terme.indexOf(CarAns,0);


}


}


return Terme;	


}


// Retour au formulaire d'interrogation


function NewQuestion() {


location.href = document.ENVOI.t2007.value;


}



Pour plus de clarté, voici le code html qui est généré par l'application :


'<tr><td>'/


''/

if p(v1) then,

'----
nom, '

v1,

', '/

fi,/

if p(v2) then,

'----
Catégorie, '

v2,

', '/

fi,/

if p(v4) then,

'----
Fonction, '

v4,

', '/

fi,/

if p(v5) then,

'----
Résumé, '

v5,

', '/

fi,/

if p(v6) then,

'----
Liens, '

(||,v6+||),'',

', '/

fi,/

if p(v7) then,

'----
Téléphone, '

v7,

', '/

fi,/

if p(v8) then,

'----
Email, '

(||,v8+||),'',

', '/

fi,/

if p(v9) then,

'----
Site&amp;nbsp;Web, '

(||,v9+||),'',

', '/

fi,/

'
'/


'</td></tr>'/
(la ligne qui nous intéresse est "Liens")


Ne vous inquiétez pas, je ne demande pas la modification de tout le code mais seulement de la partie suivante :


Je voudrais que le champ "Terme" qui est utilisé dans la fonction
puisse contenir plus d'un élément, éléments qui seraient séparés par
une virgule.


Je m'explique :


J'ai une base de données qui contient plusieurs noms de personnes
avec leurs informations de contacts, fonctions etc... et j'ai aussi un
champ qui s'appel liens, ce dernier permet de lister toutes les
personnes en contact avec la personne consultée.


exemple : Liens : jean-pierre dupont, stéphane dupré, élise lefévre..


La fonction Link permet en cliquant par exemple sur "jean-pierre
dupont" d'accéder à sa fiche (en refaisant une requête dans la base).
Pour le moment cette fonction ne me permet pas d'entrer plusieurs noms
dans ce champ mais seulement un seul. Je voudrais pouvoir en entrer
plusieurs en utilisant comme séparateur une virgule.


s'il y avait quelqu'un d'assés sympa pour se pencher sur mon
problème, cela fait un petit moment que je me triture les méninges...


Merci d'avance pour vos lumiéres


Yaz

3 réponses

PetoleTeam Messages postés 3426 Date d'inscription lundi 26 décembre 2005 Statut Membre Dernière intervention 14 janvier 2011 17
3 janv. 2007 à 21:45
B
onjour...
avec la méthode split on peut scinder une chaîne en tableau de sous chaîne

exemple :
<script type= "text/javascript">
//-------------------------
function Recup_Texte( txt_){
  var Str = "";
  var Tab_Nom = new Array(); // Tableau pour récup.
  Tab_Nom = txt_.split (","); // Ici Séparateur virgule
  //-- Récupération de chaque Sous-Chaîne 
  for( i =0; i< Tab_Nom.length; i++){    Str Str + "TabNom["+i+"] "+ Tab_Nom[i] +"\n";
  }
  alert( Str);
}
</script>

;0)
0
yazworld Messages postés 2 Date d'inscription mercredi 1 novembre 2000 Statut Membre Dernière intervention 4 janvier 2007
4 janv. 2007 à 02:21
Bonjour PetoleTeam,


tout d'abord merci pour ta réponse, j'ai utilisé ta fonction et apparamment cela rempli bien un tableau.


Voici comment j'ai procéder en intégrant ta fonction :


function Recup_Texte(Terme){

  var Str = "";

  var Tab_Nom = new Array(); // Tableau pour récup.

  Tab_Nom = Terme.split(","); // Ici Séparateur virgule

  //-- Récupération de chaque Sous-Chaîne 

  for( i=0; i< Tab_Nom.length; i++){

    Str Str + "TabNom["+i+"] "+ Tab_Nom[i] +"\n";

    }

  alert(Str);

} 



Ma fonction modifiée :



function Link(Zone, Terme,Champ,Base,Fenetre) {


    Terme = Recup_Texte(Accent(Terme));


    


    if ( Champ !"" ) Champ "/(" + Champ + ")";


    // Transfert des éléments dans le formulaire


    document.LIEN.t2005.value = document.forms[Base].t2005.value;


    document.LIEN.t2006.value = document.forms[Base].t2006.value;


    if ( Base == "LINK" ) {


        document.LIEN.t2018.value = "";


    } else {


        document.LIEN.t2018.value = "1";


    }


    if ( Fenetre == "" ) {


        document.LIEN.t2004.value = "1";


        document.LIEN.t2000.value = "("" + Terme + """ + Champ + ")";


        document.LIEN.t2001.value = "(#" + Terme + "#" + Champ + ")";


        document.LIEN.t2002.value = Zone + "=" + Terme ;

        document.LIEN.action =
document.LIEN.t2009.value + "/[in=genisis" +document.LIEN.t2013.value +
"0.in]/";


        document.LIEN.submit();


    } else {


        var URL=document.LIEN.t2009.value + "/[in=genisis" +document.LIEN.t2013.value + "0.in]/";


        URL=URL + "?t2000=" + escape("("" + Terme + """ + Champ + ")");


        URL=URL + "&amp;t2001=" + escape("(#" + Terme + "#" + Champ + ")");


        URL=URL + "&amp;t2002=" + escape(Zone + "=" + Terme);


        URL=URL + "&amp;t2003=" + escape(document.LIEN.t2003.value);


        URL=URL + "&amp;t2004=" + escape(document.LIEN.t2004.value);


        URL=URL + "&amp;t2005=" + escape(document.LIEN.t2005.value);


        URL=URL + "&amp;t2006=" + escape(document.LIEN.t2006.value);


        URL=URL + "&amp;t2007=" + escape(document.LIEN.t2007.value);


        URL=URL + "&amp;t2009=" + escape(document.LIEN.t2009.value);


        URL=URL + "&amp;t2010=" + escape(document.LIEN.t2010.value);


        URL=URL + "&amp;t2011=" + escape(document.LIEN.t2011.value);


        URL=URL + "&amp;t2012=" + escape(document.LIEN.t2012.value);


        URL=URL + "&amp;t2013=" + escape(document.LIEN.t2013.value);


        URL=URL + "&amp;t2014=" + escape(document.LIEN.t2014.value);


        URL=URL + "&amp;t2015=" + escape(document.LIEN.t2015.value);


        URL=URL + "&amp;t2016=" + escape(document.LIEN.t2016.value);


        URL=URL + "&amp;t2017=" + escape(document.LIEN.t2017.value);


        URL=URL + "&amp;t2018=" + escape(document.LIEN.t2018.value);

      
 msg=window.open(URL,"Index","location=no,status=no,toolbar=no,directories=no,resizable=yes,menubar=no,scrollbars=yes,"+Fenetre);  
 


        msg.focus();


    }


}




Cela m'affiche une boîte de dialogue comme suit :




En fait je voudrais que cela m'affiche un lien hypertexte sur le nom de
la personne si l'opération est possible, que chacunes des personnes ai
un lien différent.


exemple : que l'on puisse cliquer sur "élodie sorel" ou "frédérique
fleury" indépendamment et que ces liens soit différenciés par la virgule


Voilà,


en te remerciant par avance pour ton aide.


Yaz
0
PetoleTeam Messages postés 3426 Date d'inscription lundi 26 décembre 2005 Statut Membre Dernière intervention 14 janvier 2011 17
4 janv. 2007 à 06:21
B
onjour...
je pensais plus à un truc dans ce style

//------------------------------------------------
function Link( Zone, terme_, Champ, Base, Fenetre){
  var Str = Accent(terme_);
  var Tab_Nom = new Array();
  Tab_Nom = Str.split(",");





  //-- Récupération de chaque Sous-Chaîne


  for( var i=0; i< Tab_Nom.length; i++){
    Terme = Tab_Nom[i];





    if ( Champ !"" ) Champ "/(" + Champ + ")";
    // Transfert des éléments dans le formulaire
    document.LIEN.t2005.value = document.forms[Base].t2005.value;
    document.LIEN.t2006.value = document.forms[Base].t2006.value;
    if ( Base == "LINK" ) {
      document.LIEN.t2018.value = "";
    }
    else {
      document.LIEN.t2018.value = "1";
    }
    if ( Fenetre == "" ) {
      document.LIEN.t2004.value = "1";
      document.LIEN.t2000.value = "("" + Terme + """ + Champ + ")";
      document.LIEN.t2001.value = "(#" + Terme + "#" + Champ + ")";
      document.LIEN.t2002.value = Zone + "=" + Terme ;
      document.LIEN.action = document.LIEN.t2009.value + "/[in=genisis" +document.LIEN.t2013.value + "0.in]/";
      document.LIEN.submit();
    }
    else {
      var URL=document.LIEN.t2009.value + "/[in=genisis" +document.LIEN.t2013.value + "0.in]/";
      URL=URL + "?t2000=" + escape("("" + Terme + """ + Champ + ")");
      URL=URL + "&t2001=" + escape("(#" + Terme + "#" + Champ + ")");
      URL=URL + "&t2002=" + escape(Zone + "=" + Terme);
      URL=URL + "&t2003=" + escape(document.LIEN.t2003.value);
      URL=URL + "&t2004=" + escape(document.LIEN.t2004.value);
      URL=URL + "&t2005=" + escape(document.LIEN.t2005.value);
      URL=URL + "&t2006=" + escape(document.LIEN.t2006.value);
      URL=URL + "&t2007=" + escape(document.LIEN.t2007.value);
      URL=URL + "&t2009=" + escape(document.LIEN.t2009.value);
      URL=URL + "&t2010=" + escape(document.LIEN.t2010.value);
      URL=URL + "&t2011=" + escape(document.LIEN.t2011.value);
      URL=URL + "&t2012=" + escape(document.LIEN.t2012.value);
      URL=URL + "&t2013=" + escape(document.LIEN.t2013.value);
      URL=URL + "&t2014=" + escape(document.LIEN.t2014.value);
      URL=URL + "&t2015=" + escape(document.LIEN.t2015.value);
      URL=URL + "&t2016=" + escape(document.LIEN.t2016.value);
      URL=URL + "&t2017=" + escape(document.LIEN.t2017.value);
      URL=URL + "&t2018=" + escape(document.LIEN.t2018.value);
      msg=window.open(URL,"Index","location=no,status=no,toolbar=no,directories=no,resizable=yes,menubar=no,scrollbars=yes,"+Fenetre);
      msg.focus();
    }
  }
}


avec en rouge ce qui change dans ta fonction, la fonction Recup_Texte n'étant qu'un exemple...
;0)
0
Rejoignez-nous