Ajout ligne sur un bon livraison

aurelie30 -  
Alain_42 Messages postés 5413 Statut Membre -
Bonjour, je suis nouvelle sur ce forum et je vien soliciter votre aide .
Je suis actuellement en train de faire un formulaire de saisie de bon de livraison pour ma societe.
le programme marche plus ou moins bien ( du moins ca s'affiche "presque comme je le souhaite " )et ca enregistre bien dans la base de donnée.
le souci vient du fait que sur presque tous les bons de livraison il y a plusieurs lignes a saisir et qu'actuellement je ne peu en saisir qu'une seule.
Mon but serai de faire un bouton ajouter ligne qui me permetrait de rajouter le nombre de ligne necessaire.

Voici la structure de mon programme :

j'ai une liste déroulante qui va afficher le nom du client selon sa ville ( ca ne changera pas selon le nombre de ligne a ajouter sur un bon de livraison).

j'ai une liste deroulante qui va afficher les produits selon la categorie ( devra je rajouter dans l'ajout de la ligne car sur le meme bon de livraison il peu y avoir xx produits differents ).

ensuite j'ai des zones de saisie :

numero de BL et date du BL ( qui ne change pas en ajoutant une ligne )

et enfin j'ai le prix et le poid du produit ( qui s'ajoutera atant de fois que le nombre de produit contenu sur le BL.

Bref pour résumer je voudrais un bouton ajouter qui me rajoutera la liste deroulante de mes produit et le poid et prix de ceux ci.

j'espere avoir été assez claire et j'attend votre aide merci d'avance.

Aurelie

14 réponses

papymucho Messages postés 146 Statut Membre 220
 
Bonjour,

Tu codes en quoi?
0
aurelie30
 
salut je code en php avec base mysql avec pour les listes deroulantes du javascript .
0
papymucho Messages postés 146 Statut Membre 220
 
Peux-tu mettre une partie de ton code s'il te plait, notamment tes listes déroulantes.

Ca n'a pas l'air si compliqué, une simple boucle suffirait.
0
aurelie30
 
merci et d'un coté ca me rassure que certaines personnes puissent penser que ca n'a pas l'air compliqué car moi ca me rend folle !!!

voila le code je pense qu'il dois y avoir plus simple mais bon ca marche ( je suis debutante je ne cherhce qu'a apprendre ) :

<?php
echo"
<html>
<head>
<script type=\"text/javascript\">
function affiche_select( select ){
";
mysql_connect("localhost", "root", ""); // Connexion à MySQL
mysql_select_db("sollier"); // Sélection de la base sollier
$req0 = "select distinct(cat_fam) from famille ";
$result = mysql_query($req0);
while ( $row = mysql_fetch_assoc($result) ){
echo"
document.getElementById(\"nom_produit_".$row['cat_fam']."\").style.visibility = 'hidden';
";
}
echo"
document.getElementById( 'nom_produit_' + select ).style.visibility = 'visible';
}
function affiche_select2( select ){
";
mysql_connect("localhost", "root", ""); // Connexion à MySQL
mysql_select_db("sollier"); // Sélection de la base sollier
$req0 = "select distinct(ville_cl) from cl ";
$req0 .= " ORDER BY `nom_cl` ASC";
$result = mysql_query($req0);
while ( $row = mysql_fetch_assoc($result) ){
echo"
document.getElementById(\"nom_cl_".$row['ville_cl']."\").style.visibility = 'hidden';
";
}
echo"
document.getElementById( 'nom_cl_' + select ).style.visibility = 'visible';
}
</script>

</head>

<body>
<form method=\"post\" action=\"forme.php\">
<select name=\"cat_fam\" onChange=\"affiche_select(this.value)\">
<option>---Categorie---</option>
";
$req = "select distinct(cat_fam) from famille ";
$result = mysql_query($req);
while( $row = mysql_fetch_assoc($result) ){
echo"
<option value=\"".$row['cat_fam']."\">".$row['cat_fam']."</option>
";
}
echo"
</select>
<select name=\"ville_cl\" onChange=\"affiche_select2(this.value)\">
<option>---Ville---</option>
";
$req1 = "select distinct(ville_cl) from cl ORDER BY ville_cl ASC ";
$result1 = mysql_query($req1);
while( $row = mysql_fetch_assoc($result1) ){
echo"
<option value=\"".$row['ville_cl']."\">".$row['ville_cl']."</option>
";
}
echo"
</select>

";
$req = "select distinct(cat_fam) from famille ";
$result = mysql_query($req);
while( $row = mysql_fetch_assoc($result) ){
echo"
<select name=\"nom_produit_".$row['cat_fam']."\" id=\"nom_produit_".$row['cat_fam']."\" style=\"visibility:hidden\">
<option>---produit---</option>
";
$req1 = "select distinct(nom_produit) from famille where cat_fam ='".$row[cat_fam]."' ";
$result1 = mysql_query($req1);
while( $row = mysql_fetch_assoc($result1) ){
echo"
<option value=\"".$row['nom_produit']."\">".$row['nom_produit']."</option>
";
}
echo"
</select>
";
}
$req3 = "select distinct(ville_cl) from cl ";
$result3 = mysql_query($req3);
while( $row = mysql_fetch_assoc($result3) ){
echo"
<select name=\"nom_cl_".$row['ville_cl']."\" id=\"nom_cl_".$row['ville_cl']."\" style=\"visibility:hidden\">
<option>---Nom du Client---</option>
";
$req2 = "select distinct(nom_cl) from cl where ville_cl ='".$row[ville_cl]."' ORDER BY nom_cl ASC";
$result2 = mysql_query($req2);
while( $row = mysql_fetch_assoc($result2) ){
echo"
<option value=\"".$row['nom_cl']."\">".$row['nom_cl']."</option>
";
}
echo"
</select>
";
}
echo"

";
?>

<fieldset>

Numero du Lot : <input type="text" name="num_lot" /><br />
Poid du Produit : <input type="text" name="poid_produit" /><br />
Prix du Produit : <input type="text" name="prix_produit" /><br />
</fieldset>

<fieldset>

Numero du Bon de Livraison : <input type="text" name="num_bl" /><br />
Date du Bon de Livraison : <input type="text" name="date_bl" /><br />
</fieldset>

<input type="submit" value="Envoyer" />
<input type="reset" value="Rétablir" />
</form>
</body>

</html>

--------------------------------------------------------------------------------------------------------------------------------------------

voila si ca peux t'aider à m'aider ...
merci en tout cas
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
papymucho Messages postés 146 Statut Membre 220
 
Ouch ok :)

Bon sans voir pour le code actuellement (sincèrement, je pense que c'est à revoir)

Il peut y avoir plusieurs façons de procéder.

Si tu ne peux connaître à l'avance le nombre de produit qu'il y aura sur ton BL, peux-tu rajouter un input pour récupérer le nombre de produit?

partie formulaire
<input type='text' name='nb_produit' />

partie php
$nb_produit=$_POST['nb_produit']

echo"<table>";
for($i=0;$i<$nb_produit;$i++)
{
echo "<tr><td><input type='text' name='produit_$i'></td></tr>";
}
echo"</table>";

bon c'est un exemple vraiment basic, je n'ai plus le temps, je pense vraiment que ta structure est à revoir (tu mélanges un peu tout) ;) je t'aiderais plus dès que je le pourrais ;)

bon ap'

EDIT : j'avais écrit une connerie dans la boucle mdrr..... donc modif faite :la déclaration de la table ne s'écrit pas a l'intérieur de la boucle.... mais a l'exterieur
0
aurelie30
 
merci mais j'ai pas tout compris ...
0
papymucho Messages postés 146 Statut Membre 220
 
Bonsoir,

Bon en fait j'ai relu l'énoncé et cela paraît plus compliqué que je ne l'avais cru....
En fait tu as fait deux menu déroulant dynamique, qui chargent leurs contenus en fonction du choix fait dans deux autres menus déroulant... Le tout dans 2 fonctions js...

J'aimerais bien demander l'avis d'un expert avant d'aller plus loin....

Je ne procède pas de la même façon, plutôt avec des requêtes xml http request, simplifiées grâce à une librairie js...
Le code n'est pas très clair pour moi du coup....

Si tu veux bien aller voir par là, son problème n'est pas tout à fait le même mais ça peut être instructif je pense...

http://www.commentcamarche.net/forum/affich 8434526 liste deroulante php bd mysql pb codification?page=4#64

En attendant je travailles sur ton code, je te donnes une réponse lundi...
0
aurelie30
 
merci de ton aide,
comme je l'ai dis plus haute je suis novice dans la programmation donc si il faut apprendre d'une autre facon je suis ouverte a toutes propositions.
je vais aller jeter regarder ton lien voir si je m'en sors mieux.
je te tiens au courant.
et merci encore.
0
aurelie30
 
merci papymucho, j'ai bien regardé le lien que tu m'a envoyé mais je ne comprend pas grand chose a ajax .
je pense que ce qu'il a fait correspond avec plus ou moins ce que je veux faire.
mais quand on est debutante comme moi c'est pas evident.
0
aurelie30
 
Personne pour m'aider ???
0
bg62 Messages postés 26248 Date d'inscription   Statut Modérateur Dernière intervention   2 429
 
bonjour
nous sommes sur un forum d'entraide, certes, mais s'inscrire serait cependant beaucoup mieux
ne serait-ce que vis à vis de ceux qui vous aident sur ce forum ...
ne restez donc pas anonyme !
@mitiés
b g
0
aurelie30000 Messages postés 2 Date d'inscription   Statut Membre Dernière intervention  
 
voila qui est chose faite je me suis inscrite.
Sinon probleme toujours d'actualité si quelqu'un a des idées ...
Merci
Aurelie
0
aurelie30000 Messages postés 2 Date d'inscription   Statut Membre Dernière intervention  
 
salut ,
toujours personne pour m'aider ?
0
aurelie30
 
up
0
Alain_42 Messages postés 5413 Statut Membre 894
 
Bonjour,

En gros ce que tu veux:

Une première liste déroulante avec les villes (1 seul client par ville ?)

après avoir choisis une ville ds cette liste tu veux afficher les champ numéro et date du BL

et une premiére ligne avec une liste déroulante catégorie et 3 champs numéro lot, poids,prix avec un bouton ajouter pour rajouter des lignes
0
Alain_42 Messages postés 5413 Statut Membre 894
 
Tiens je t'ai fait ça essayes:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<script type=\"text/javascript\">
function ajout_ligne(num){
	num=parseInt(num);
	var ajout; //variable javascript dans laquelle on va empiler tout ce qu'on veut rajouter
	<?php
	mysql_connect("localhost", "root", ""); // Connexion à MySQL
	mysql_select_db("sollier"); // Sélection de la base sollier
	$req0 = "SELECT DISTINCT(cat_fam) FROM famille ";
	$result = mysql_query($req0);
	?>
	//la liste categorie
	ajout="<select name=\"choix_cat_ligne"+num+"\">";
	ajout+="<option value=\"\">Cat&ecaute;gorie</option>";
	<?php
	while ( $row = mysql_fetch_assoc($result) ){
	?>
		ajout+="<option value=\""+"<?php echo $row['cat_fam']; ?>"+"\">"+"<?php echo $row['cat_fam']; ?>"+"</option>";
	<?php
	}
	?>
	
	//les 3 champs
	ajout+="<fieldset>Numero du Lot : <input type=\"text\" name=\"num_lot"+num+"\" /><br />Poids du Produit : <input type=\"text\" name=\"poid_produit"+num+"\" /><br />Prix du Produit : <input type=\"text\" name=\"prix_produit"+num+"\" /><br /></fieldset>";
	
	//le bouton ajouter et la zone pour revoir une autre ligne apres
	num++;
	ajout+="<div id=\"ligne"+num+"\">";
	ajout+="<input type=\"button\" value=\"Ajouter ligne\" onClick=\"ajout_ligne("+num+")/>;\";
	ajout+="</div>";
	
	//maintenant on ecrit tout ça dans le div
	num--;
	var id_ecrire="ligne"+num;
	document.getElementById(id_ecrire).innerHTML=ajout;
}


</script>

</head>

<body>
<form method="post" action="forme.php">
	<select name="ville_cl" onChange="ajout_ligne('1')">
		<option value="">---Ville---</option>
<?php
		$req1 = "SELECT DISTINCT(ville_cl) FROM cl ORDER BY ville_cl ASC ";
		$result1 = mysql_query($req1);
		while( $row = mysql_fetch_assoc($result1) ){
			echo "<option value=\"".$row['ville_cl']."\">".$row['ville_cl']."</option>";
		}
?>		
	</select>
	<div id="ligne1"></div>
	<br>
	

	<fieldset>
		Numero du Bon de Livraison : <input type="text" name="num_bl" /><br />
		Date du Bon de Livraison : <input type="text" name="date_bl" /><br />
	</fieldset>

<br /><br />
	<input type="submit" value="Envoyer" />
	<input type="reset" value="Rétablir" />
</form>
</body>
</html>
0