[JS] Concaténer des valeurs dans un form

Résolu/Fermé
BlueWolf² Messages postés 44 Date d'inscription vendredi 24 août 2007 Statut Membre Dernière intervention 28 août 2010 - 25 déc. 2007 à 23:44
BlueWolf² Messages postés 44 Date d'inscription vendredi 24 août 2007 Statut Membre Dernière intervention 28 août 2010 - 26 déc. 2007 à 15:26
Bonjour à tous !

Une fois de plus, je me présente avec un nouveau souci. Le résumé est simple : j'ai un formulaire. Pour des raisons pratiques, il faudrait qu'il ne passe qu'une seule variable alors qu'il contient trois champs. J'en suis venu à la conclusion qu'il me fallait concaténer mes variables en utilisant des séparateurs que je puisse par la suite traiter en php (valeur_champ1[@]valeur_champ2[@]...) avant de les envoyer par le submit. Sachant que ledit submit est un appel à une fonction JS puisque j'ajax un div, en fait.

Ma question à présent : comment faire sans créer une fonction à côté ? (c'est pour une fonctionnalité admin, et je ne veux pas surcharger le code des pages du visiteur avec des fonctions qui ne lui serviront pas)

Je me demandais s'il n'était pas possible d'utiliser une structure du type
onsubmit="javascript:function () { concaténation, envoi }"

Si oui, quelle serait la syntaxe exacte, svp ?

Merci par avance !

2 réponses

Gihef Messages postés 5150 Date d'inscription mercredi 20 juillet 2005 Statut Contributeur Dernière intervention 20 février 2023 2 778
26 déc. 2007 à 15:22
Bonjour,

Une concaténation se fait simplement en JS.
“+” suffit.
Ne peux-tu pas créer une variable qui recevra cette concaténation pour l'utiliser ailleurs ensuite ? Dans un input caché ou autre…

Je ne suis pas un expert en JS. Je ne connais pas PHP.
Mais, en reprenant un bricolage fait ailleurs, cet autre bricolage peut peut-être te donner une piste ?
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>DOM - Concaténer en JS</title>
<script type="text/javascript">
function copieChoix()
{
var no = document.getElementById("no");
var res = document.getElementById("result");
var option = no.options[no.selectedIndex].text;
var txt = res.value;
var separ = "_@#_";
txt = txt + option;
if (option != "Faites un choix") {
   res.disabled=false;
   res.focus();
   res.value=txt;
  }
if (option == 1) {
   document.getElementById("result4").focus();
   var concat = txt + separ + document.getElementById("result2").value + separ + txt + separ + document.getElementById("result3").value;
   document.getElementById("result4").value = concat;
  }
}
</script>
</head>

<body onLoad='document.getElementById("result").disabled=true;'>
<form action="">
<br>Choisissez "1" ou autre chose et "1"<br>
<select id="no" onChange="copieChoix()" >
  <option>Faites un choix</option>
  <option>1</option>
  <option>2</option>
  <option>3</option>
  <option>4</option>
  <option>5</option>
  <option>6</option>
  <option>7</option>
  <option>8</option>
  <option>9</option>
</select>
<input type="button" onclick="copieChoix()" value="Ajouter -->"> 
<input type="text" id="result" size="20"><br>
<input type="text" id="result2" size="20" value="homme"><br>
<input type="text" id="result3" size="20" value="femme"><br>
<input type="text" id="result4" size="50">
</form><br><br><br>
<p style="font-size:85%">En réponse à
  <a href="http://www.commentcamarche.net/forum/affich 4415671 js concatener des valeurs dans un form">
  [JS] Concaténer des valeurs dans un form</a>
</p>
</body>
</html>


++
N'y vois aucun jugement moral (-;

--
0
BlueWolf² Messages postés 44 Date d'inscription vendredi 24 août 2007 Statut Membre Dernière intervention 28 août 2010 12
26 déc. 2007 à 15:26
L'idée correspond bien à ce que je voulais faire, mais il faut créer une fonction, ce qui me pose problème. J'ai trouvé une autre parade qui devrait marcher convenablement, à savoir que je vais créer un fichier de script qui ne sera chargé que si un admin est loggé. Merci pour ton aide.
0