ajouter une ligne dans un tableau et afficher la valeur d'une variable
Bonjour,
Je ne suis pas une pro du développement et j'ai un petit soucis pour une histoire de variable et de tableau.
Le contexte
Sur une appli web j'ai une page asp qui permet à l'utilisateur d'afficher le contenue d'une base de donnée et de faire des modifications dessus.
A la fin de mon formulaire j'ai un tableau qui reprend les infos de contact, j'affiche de le nom +n° de tel+n° de portable du 1er contact, l'utilisateur peut alors clicker sur un bouton pour faire apparaitre une nouvelle ligne de contact
http://www.servimg.com/image_preview...=52&u=10042692
a l'événement onclick la fonction AjoutContact() est appelée.
Code:
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 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54
| var numLigne=1;
function AjoutContact()
{
var sHTML;
// Incrementation de lignes dans la table
numLigne++;
//test
var contact="strContact"+numLigne;
alert(contact);
//boucle pour l'insertion de cellules dasn chaque nouvelle igne
//je limite à 3 lignes suppl.
if (numLigne < 5)
{
//insertion de lignes dans la table
oRow= document.getElementById('TableContact').insertRow(-1);
for (i=0; i<6; i++)
{
var oCell = oRow.insertCell(i);
//Utilisation du switch pour insertion de valeurs différentes selon les cellules
switch (i)
{
case 0 :
sHTML="<font color=\"#A36732\"> Nom contact "+numLigne+" :";
break;
case 1 :
sHTML="<input type=\"texte\" style={width:100%} name=\"CONTACT"+numLigne+"\" value=\"test "+contact+"\">";
break;
case 2 :
sHTML="<font color=\"#A36732\">Tel"+numLigne+" :";
break;
case 3 :
sHTML="<input type=\"texte\" style={width:100%} name=\"TEL"+numLigne+"\" value=\"test"+numLigne+"\">";
break;
case 4 :
sHTML="<font color=\"#A36732\">Portable"+numLigne+" :";
break;
case 5 :
sHTML="<input type=\"texte\" style={width:100%} name=\"PORT"+numLigne+"\" value=\"test"+numLigne+"\">";
break;
}
//oCell.insertAdjacentHTML("beforeEnd", sHTML);
oCell.innerHTML = sHTML;
}
}
else
alert("Vous avez atteint le nombre maximal de contacts");
} |
Le problème
Mon problème se situe au niveau de la valeur de l'input type text qui est affiché dans les case 1, case 3 et case 5 car le nom de la variable qui contient la valeur change (strContact2 - strContact3 ect...) alors j'ai bien essayé de bidouille un truc genre contact="strContact"+numLigne et là effectivement j'ai le bon nom de varaible mais si je met
Code:
sHTML="<input type=\"texte\" style={width:100%} name=\"CONTACT"+numLigne+"\" value=\"<%= "+contact+"%>\">";
et bien le <%= n'est pas interpréter ! donc àl'affichage j'ai comme valeur de mon input ++ trèèèèèèèès intéressant:cry:
je vous met aussi le tableau et le bouton
Code:
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 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58
| <TABLE name="TableContact" id="TableContact" border="0"width="100%">
<tr></tr>
<tr></tr>
<tr>
<td colspan=6 class="title">Contacts</td>
</tr>
<tr></tr>
<tr></tr>
<tr>
<td width="15%">
<font color="#A36732">Propriétaire :</font>
</td>
<td colspan="5">
<%
strProprio = StringHelper.replaceNull (strProprio, "");
strProprio = StringHelper.replaceSpecialChar (strProprio);
%>
<input name="PRIX" id="PROPRIO" type="text" value="<%=strProprio%>" maxlength="30" style={width:50%}>
</td>
</tr>
<tr>
<td width="15%">
<font color="#A36732">Nom contact 1 :</font>
</td>
<td width="30%">
<%
strContact1 = StringHelper.replaceNull (strContact1, "");
strContact1 = StringHelper.replaceSpecialChar (strContact1);
%>
<input name="CONTACT1" id="CONTACT1" type="text" value="<%=strContact1%>" maxlength="30" style={width:100%}>
</td>
<td width="5%">
<font color="#A36732">Tel1 :</font>
</td>
<td width="20%">
<%
strTel1 = StringHelper.replaceNull (strTel1, "");
strTel1 = StringHelper.replaceSpecialChar (strTel1);
%>
<input name="TEL1" id="TEL1" type="text" value="<%=strTel1%>" onblur="VerifTel(this)" maxlength="30" style={width:100%}>
</td>
<td width="10%">
<font color="#A36732">Portable1 :</font>
</td>
<td width="20%">
<%
strPort1 = StringHelper.replaceNull (strPort1, "");
strPort1 = StringHelper.replaceSpecialChar (strPort1);
%>
<input name="PORT1" id="PORT1" type="text" value="<%=strPort1%>" maxlength="30" style={width:100%}>
</td>
</tr>
<tr>
<td colspan="6">
<input type="button" value="Ajouter un contact" onclick="AjoutContact()" maxlength="30" style={width:30%}>
</td>
</tr>
</table> |
J'espère avoir été clair et surtout que quelqu'un pourra m'aider (allez je suis sur que ce n'est pas compliqué ;)
(désolé le text du code est tout collé à gauche!)
oui mais alors comment faire?
Bonjour,
Merci pour vos reponses
Oui effectivement je me doutais bien qu'il y avait un problème de serveur/client dans mon code !
Par contre je n'ai pas bien compris ce que je pouvais faire pour y remédier....
Citation:
A priori, si c'est en ASP que tu veux alimenter la value, il faut modifier ton code pour remplacer ta variable Javascript contact par une variable ASP. Et modifier également la syntaxe
Code :
value=\"<%= ta_variable_ASP %>\"
Sinon, il faut rester en pur Javascript (sans ASP) ...
Moi je voudrais bien écrire value=\"<%= ta_variable_ASP %>\" mais le probleme c'est que le nom de ma variable ASP c'est strContac2 pour la ligne 2, strContact3 pour la ligne 3 ect... et je n'arrive pas à lui dire que lors de l'insertion de la première ligne la variable strContact change de nom....
Citation:
Donc, pour faire cela, il vaut mieux passer par AJAX
Ajax connait pas...:cry:
Concernant le input type="text" j'avais corrigé, bete erreur de saisie :D