Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD
PHP & SGBD Forum d'entraide sur les SGBD avec PHP. Avant de poster : FAQ BDD, toutes les FAQ PHP, cours BDD et sources BDD
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 20/10/2006, 12h45   #1
Invité régulier
 
Inscription : août 2006
Messages : 26
Détails du profil
Informations forums :
Inscription : août 2006
Messages : 26
Points : 6
Points : 6
Par défaut [Conception] tableau de taille variable

Bonjour,
j'ai un formulaire qui affiche le code d'un article donné,ce formulaire contient aussi 2 zone de texte l'une pour saisir la date d'entrée de l'article en stock,et l'autre pour saisir la quantité entrée en stock,une fois cette dernière zone est saisié,un tableau se gère automatiqument et l'utilisateur doit remplir ce tableau,ce tableau est de 3 colonnes et le nombre de ligne est exactement la quantité saisie dans la zone de texte(par exemple si l'utilisateur saisie 4 comme quantité entrée en stock le tableau est de 4 lignes),les trois colonnes du tableau sont(N°serie,N°inventaire,N°caractérisation),mon pb est que je veux inserer dans la table "caractérisation" les données suivantes ,le code de l'article qui est affiché dans le formulaire,et tous les N°serie ,N°inventaire,N°caracterisation,
pour plus de détail les champs de la table "caractérisation" sont(N°caractérisation,code_article,N°serie,N°inventaire),donc à chaque fois on va inserer le mëme code de l'article mais avec des N°serie,N°inventaire,N°caractérisation déffirentes jusqu à la fin du tableau automatique,
j'espère que j'ai bien expliqué mon problème
s'il vous plait aide moi,j'arrive pas à trouver un code correct,je trouve ça difficile,pacque je suis ébutante en PHP
salirose est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/10/2006, 13h04   #2
Expert Confirmé Sénior
 
Avatar de Mr N.
 
Inscription : septembre 2004
Messages : 5 421
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 5 421
Points : 5 835
Points : 5 835
Désolé, mais la description de ton problème est... comment dire... pas très aérée, du coup j'ai du mal à tout lire et tout comprendre...


EDIT: Bon, après 10 lectures je crois que j'ai cerné le problème. Est-ce que tu as du code qui marche ?
Mr N. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/10/2006, 13h23   #3
Invité régulier
 
Inscription : août 2006
Messages : 26
Détails du profil
Informations forums :
Inscription : août 2006
Messages : 26
Points : 6
Points : 6
Par défaut tableau de taille variable

bonjour,
j'ai pas compris de quel code vous parlez,est ce le code de mon formulaire?
salirose est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/10/2006, 13h26   #4
Expert Confirmé Sénior
 
Avatar de Mr N.
 
Inscription : septembre 2004
Messages : 5 421
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 5 421
Points : 5 835
Points : 5 835
Du code relatif à ton problème, pas celui de mon voisin de bureau
Mr N. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/10/2006, 14h06   #5
Invité régulier
 
Inscription : août 2006
Messages : 26
Détails du profil
Informations forums :
Inscription : août 2006
Messages : 26
Points : 6
Points : 6
Par défaut tableau de taille variable

bonjour,
j'ai seulement,le code correspondant à mon formulaire,mais si vous n'avez pas compris qlqchlose dans mon PB dis moi,je vais essayer de vous expliquer mieux
voici le code de mon formulaire:
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
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
 
<?php
require("../conn/conn.php");
$p=mysql_query("select * from article");
$str="select * from article where id_article=".$_GET['id'];
$r=mysql_query($str);
$ar=mysql_fetch_array($r);
 
 
?>
<div align="center">
  <form id="form1" name="form1" method="post" action="inserermateriel.php">
    <p>&nbsp;</p>
    <table width="740" border="1">
           <tr>
        <th width="730" bgcolor="#CC9966" scope="col"><div align="left">
          <table width="427">
            <tr>
              <th width="114" scope="col"><div align="center">Code</div></th>
              <th width="115" scope="col"><div align="left">Reference</div></th>
              <th width="120" scope="col"><div align="left">designation</div></th>
              <th width="58" scope="col">Stock</th>
            </tr>
            <tr>
              <th scope="row"><label1><?=$ar['ID_ARTICLE']?></label1>&nbsp;</th>
              <td><label2><?=$ar['REFERENCE_ART']?></label2>&nbsp;</td>
              <td><label><?=$ar['DESIGNATION_ART']?></label>&nbsp;</td>
              <td><label4></label4>
              &nbsp;
              <?=$ar['QTE_STOCKEE']?></td>
			  <input type="hidden" name="id" value="<?php echo $ar['ID_ARTICLE'];?>" />
            </tr>
          </table>
        </div></th>
      </tr>
    </table>
    <table width="741" border="1">
      <tr>
        <th width="163" bgcolor="#CC9966" scope="col"><div align="left">Date de livraison </div></th>
        <th width="562" bgcolor="#CC9966" scope="col"><div align="left">
          <input name="textfield2" type="text" size="32" />
        </div></th>
      </tr>
      <tr>
        <th bgcolor="#CC9966" scope="row"><div align="left">Quantit&eacute; livr&eacute;e </div></th>
        <td bgcolor="#CC9966"><div align="left">
          <input name="txtquantite" type="text" id="txtquantite" size="32" />
        </div></td>
      </tr>
      <tr>
        <th bgcolor="#CC9966" scope="row"><div align="left">N&deg;bon de commande</div></th>
        <td bgcolor="#CC9966"><div align="left">
		<?php
		$str="select num_cmd from article_commmande where id_article=".$_GET['id'];
		$r1=mysql_query($str);
		?>
        <select name="N_cmd" id="N_cmd">
          <?php
		  while($bon=mysql_fetch_array($r1))
		  {
             echo "<option>".$bon['num_cmd']."</option>";
            } 
			?>
        </select>
        </div></td>
      </tr>
    </table>
    <div id="searchresults"></div>
    <script language="JavaScript">
 
// from js_util.js by scottandrew.com/junkyard/js/
function addEvent(elm, evType, fn, useCapture)
 
{
if (elm.addEventListener){
elm.addEventListener(evType, fn, useCapture);
return true;
} else if (elm.attachEvent){
var r = elm.attachEvent("on"+evType, fn);
return r;
} else {
alert("Handler could not be removed");
}
}
// end from scottandrew.com/junkyard/js/
 
var valquantite = document.getElementById("txtquantite");
 
 
var displayBox = document.getElementById("searchresults");
addEvent(valquantite, 'keyup', doTest, false);
 
 
var keyPressDelay = '';
 
var xmlhttp=false;
try {
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch (E) {
xmlhttp = false;
}
}
 
if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
xmlhttp = new XMLHttpRequest();
}
 
function doTest() {
if (keyPressDelay) {
window.clearTimeout(keyPressDelay);
}
 
if(valquantite.value != '' ) {
keyPressDelay = window.setTimeout('doSearch()',800);
}
 
 
}
 
function doSearch() {
displayBox.innerHTML = "Searching ...";
xmlhttp.open("GET","tableauquantite.php?valquantite="+valquantite.value,true);
xmlhttp.onreadystatechange=function() {
if (xmlhttp.readyState==4) {
displayBox.innerHTML = xmlhttp.responseText;
}
}
xmlhttp.send(null);
displayBox.innerHTML = "";
 
}
      </script>
    <table width="279" border="0">
      <tr>
        <th width="74" height="45" scope="col"><p>
            <input type="submit" name="Submit" value="Valider" />
        </p></th>
        <th width="105" scope="col"><input type="reset" name="Submit2" value="Annuler" /></th>
        <th width="86" scope="col">&nbsp;</th>
      </tr>
    </table>
    <p>&nbsp;</p>
    <p>&nbsp;</p>
  </form>
</div>
la page tableauquantite.php contient le code suivant
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
 
<?php
 
$quantite = $_REQUEST['valquantite'];
 
 
?>
 
    <table width="315">
      <tr>
        <th bgcolor="#CCCC66"><div align="left">N&deg;inventaire</div></th>
        <th bgcolor="#CCCC66"><div align="left">N&deg;serie</div></th>
        <th bgcolor="#CCCC66"><div align="left">N&deg;caracterisation</div></th>
      </tr>
 
<?php 
 
$i=1;
while ($i<=$quantite){
echo "<tr height=20 bgcolor=#EEEEEE><td width=30><input type=text></td><td width=30><input type=text></td><td width=30><input type=text></td></tr>";
$i++;
};
 
?>
    </table>
et merci d'avance pour votre aide
salirose est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/10/2006, 14h21   #6
Expert Confirmé Sénior
 
Avatar de Mr N.
 
Inscription : septembre 2004
Messages : 5 421
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 5 421
Points : 5 835
Points : 5 835
Qu'est ce qui marche sur ce code ? Est ce que le tableau s'affiche bien avec le bon nombre de ligne quand on modifie le champ correspondant ?
Mr N. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/10/2006, 14h39   #7
Invité régulier
 
Inscription : août 2006
Messages : 26
Détails du profil
Informations forums :
Inscription : août 2006
Messages : 26
Points : 6
Points : 6
Par défaut tableau de taille variable

bonjour,
oui le tableau s'affiche bien avec le nombre de lignes désirés,mon PB c'est au nieau de l'enregistrement,je vous comme j'ai déjà dit enregistrés le code de l'article et les contenu des cellules du tableau dans la table "caractérisation"
et merci d'avance,j'ai vraiment besoin de votre aide
salirose est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/10/2006, 15h11   #8
Expert Confirmé Sénior
 
Avatar de Mr N.
 
Inscription : septembre 2004
Messages : 5 421
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 5 421
Points : 5 835
Points : 5 835
Il faut que tu mettes un nom à tes champs. Je te suggère de remplacer ton while dans tableauquantite.php par
Code :
1
2
3
4
5
6
7
for ($i = 0 ; $i < $quantite ; $i++) {
   echo '<tr height=20 bgcolor=#EEEEEE>';
   echo '<td width=30><input type="text" name="caracterisation['. $i .'][inventaire]" /></td>';
   echo '<td width=30><input type="text" name="caracterisation['. $i .'][serie]" /></td>';
   echo '<td width=30><input type="text" name="caracterisation['. $i .'][caracterisation]" /></td>';
   echo '</tr>';
};
Ensuite tu récupère un tableau de caractérisation dans $_REQUEST['caracterisation']. Pour vérifier le contenu =>
Code :
var_dump('<pre>', $_REQUEST['caracterisation'], '</pre>');
Mr N. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/10/2006, 15h26   #9
Invité régulier
 
Inscription : août 2006
Messages : 26
Détails du profil
Informations forums :
Inscription : août 2006
Messages : 26
Points : 6
Points : 6
Par défaut tableau de taille variable

Bonjours,
désolée j'ai pas compris votre solution
s'il vous plait est ce vous pouvez m'expliquer plus
merci beacoup d'avance
salirose est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/10/2006, 15h33   #10
Expert Confirmé Sénior
 
Avatar de Mr N.
 
Inscription : septembre 2004
Messages : 5 421
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 5 421
Points : 5 835
Points : 5 835
Qu'est ce que tu n'as pas compris ?
Mr N. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/10/2006, 15h39   #11
Invité régulier
 
Inscription : août 2006
Messages : 26
Détails du profil
Informations forums :
Inscription : août 2006
Messages : 26
Points : 6
Points : 6
Par défaut tableau de taille variable

salut,
j'ai pas compris où est le code qui va me permettre d'inserer les champs(code-artile,N°serie,N°inventaire,...)dans mla table caractérisation,
désolée pour cette question,mais vraiment je suis débutante en PHP,et c'est mon première application en PHP
merci d'avance
salirose est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/10/2006, 15h55   #12
Expert Confirmé Sénior
 
Avatar de Mr N.
 
Inscription : septembre 2004
Messages : 5 421
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 5 421
Points : 5 835
Points : 5 835
Arf.

Il parait que si quelqu'un à faim, il vaut mieux lui apprendre à pecher que de lui donner un poisson.
Sur cette bonne parole, je te suggère de t'attarder sur http://php.developpez.com/cours/
Mr N. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/10/2006, 01h14   #13
Membre émérite
 
Inscription : juin 2002
Messages : 1 013
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 1 013
Points : 959
Points : 959
Il est méchant Mr.N, mais il a raison

Donc je ne vais pas faire le code à ta place, car tu n'apprendras rien, et ce n'est pas le but de ce forum

Mais pour expliquer un peu plus, quelques remarques :
le code que t'a donné Mr.N, c'est pour que ton tableau dynamique soit un formulaire qui fonctionne
mais pour insérer les champs dans la table de ta base de données, il faut faire des requêtes mysql avec des intructions tel que INSERT, REPLACE, etc. Et autant que j'ai vu (vite fait) il n'y a rien de tel dans ton code. C'est là que Mr.N te suggère de lire les cours, et je précise ceux concernant mysql, par exemple http://cyberzoide.developpez.com/php4/mysql/
francis m est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/10/2006, 03h00   #14
Invité régulier
 
Inscription : août 2006
Messages : 26
Détails du profil
Informations forums :
Inscription : août 2006
Messages : 26
Points : 6
Points : 6
Par défaut tableau de taille variable

bonjour,
oui c'est vrai Mr N. a raison,car c'est pas bien pour moi de me donner la solution ,il faut que je fasse un effort comme même,
bon,avant d'attaquer la requête d'insertion,ce que j'ai pas compris dans le code de Mr N. est l'instruction suivante:
Code :
echo '<td width=30><input type="text" name="caracterisation['. $i .'][inventaire]" /></td>';
à quoi sert cet instruction?
et aussi j'ai pas compris
Code :
var_dump('<pre>', $_REQUEST['caracterisation'], '</pre>');
pourquoi récupèrer un tableau de caractérisation ?
et merci beaucoup d'avance
salirose est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/10/2006, 11h10   #15
Expert Confirmé Sénior
 
Avatar de Mr N.
 
Inscription : septembre 2004
Messages : 5 421
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 5 421
Points : 5 835
Points : 5 835
Citation:
Envoyé par salirose
Code :
echo '<td width=30><input type="text" name="caracterisation['. $i .'][inventaire]" /></td>';
à quoi sert cet instruction?
C'est exactement la même que la tienne sauf que j'ai rajouté un nom à tes champs.

Citation:
Envoyé par salirose
pourquoi récupèrer un tableau de caractérisation ?
Ben c'est pas ce que tu demandes ? C'est vrai que j'aurais du mettre caracterisation au pluriel, mais tu affiche un tableau de n lignes permettant de saisir des caractérisations(n° inventaire, n° série, n° caractérisation). Donc il faut bien que tu reçoivent en retour un tableau... Ou alors j'ai mal compris...
Mr N. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/10/2006, 12h38   #16
Invité régulier
 
Inscription : août 2006
Messages : 26
Détails du profil
Informations forums :
Inscription : août 2006
Messages : 26
Points : 6
Points : 6
Par défaut tableau de taille variable

bonjour,
non ,vous avez bien compris,ma question maintenant est pourquoi je dois mettre un nom à mes champs?
si j'ai bien compris aprés la récupération de du tableau je dois maintenant inserer le dans ma table caractérisation,
merci beacoup pour votre aide
salirose est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/10/2006, 13h53   #17
Expert Confirmé Sénior
 
Avatar de Mr N.
 
Inscription : septembre 2004
Messages : 5 421
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 5 421
Points : 5 835
Points : 5 835
Re-Arf

C'est quand même la base ^^
Si tu ne nommes pas un champ comme veux-tu récupérer sa valeur ?
Mr N. est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 17h56.


 
 
 
 
Partenaires

Hébergement Web