Selection double d'un produit dans une

Fermé
ammm - 20 juin 2008 à 14:00
 Utilisateur anonyme - 20 juin 2008 à 14:40
Bonjour,

voila, jai un projet de fin d'etude qui consiste en la realisation d'un intranet pour le suivi de facturation,

jai un formulaire pour l'ajout d'une nouvelle facture, qui est constitué en plusieur lignes facture (bien sur en depend du nombre de ligne que peut ajouter l'utilisateur),
dans chaque ligne facture lutilisateur doit choisir un produit a partir d'une liste deroulante alimentée depuis une table mysql,
mon probleme consite donc, dans la selection du produit, je doit limiter la selection de façon a ce que si un produit est deja selectionné, lutilisateur na pa la main de le reselectionner dans la deuxiemne ou la troisieme ligne, ou don tte autre ligne bien sur dans la meme facture,
jespere ke mon explication a été breve est explicite, si kelkeun pouvai me donner une idée a cmt procédé soit avec un test en php ou avec js, de preference js. merci davance pr ts ceux qui on pri la peine de lire mon prob....ciao ciao
A voir également:

1 réponse

Utilisateur anonyme
20 juin 2008 à 14:11
Soit A le tableau de données utilisé pour remplir les listes déroulantes.
Soit B le tableau utilisé pour enregistrer les éléments des listes sélectionnés.
A chaque fois qu'une sélection est faite dans une liste, tu ajoutes l'élément à B.
A chaque construction d'une liste déroulante, tu ajoutes les élements de A qui ne sont pas dans B.
0
merci pour ta reponse si rapide, mai en minspirant de ton idée, je pensé a un tableau rempli par les enregistrement selctionné et ainsi, a chaque foi ke je fai une selectionne je compare ce dernier avec le tableau deja rempli,
si tu a bien compri mon idée, stp je voudrai la syntaxe adequate a un tel code, o moin par un autre exemple plus simple.

merci merci
0
Utilisateur anonyme > ammm
20 juin 2008 à 14:22
C'est exactement ce que je t'ai expliqué, où en est ton code (html et js) ?
0
ammm > Utilisateur anonyme
20 juin 2008 à 14:26
mon code est fait purement de php et kelke js, il est assez long mai je te donne la partie du code php qui afiche les donnée du produit selectionné et ainsi recupere si il é selectionné ou pa:

//je recupere le nombre de ligne et ainsi la ligne en cour:
else if ($action=='select'){
$i=1;
$nbligne=$_POST['nbligne'];
while ($i<=$nbligne){
$desig="desig".$i;
$sel="sel".$i;
$qnte="qnte".$i;
$descr="descr".$i;
$qntes="qntes".$i;
$pu="pu".$i;
$tva="tva".$i;
$$desig=$_POST[$desig];
$$sel=$_POST[$sel];
$$qnte=$_POST[$qnte];
$$descr=$_POST[$descr];
$$qntes=$_POST[$qntes];
$$pu=$_POST[$pu];
$$tva=$_POST[$tva];
$i++;
}
$ligne=$_REQUEST['ligne'];
$desig="desig".$ligne;
$sel="sel".$ligne;
$$sel=$_POST[$sel];
echo $$sel;
$$desig=$_POST[$desig];
$desigg=$$desig;
$sele=$$sel;
if (($ligne>=2) && ($$desig="selected=\"selected\"") && ($$desig="selected=\"selected\"")){
echo "<script type='text/javascript'>alert('Ce Produit est deja selectionné!Selectionné un autre produit');</script>";
$$desig=="";
}
else {
$desigg=$$desig;

$sql = " SELECT * FROM produitsm WHERE cod_pro='$desigg' ";
$result = mysql_query($sql) or die("Requete Incorecte!");
$cod_pro="cod_pro".$ligne;
$desig="desig".$ligne;
$descr="descr".$ligne;
$qntes="qntes".$ligne;
$qnte="qnte".$ligne;
$pu="pu".$ligne;
$tva="tva".$ligne;
while ($rows= mysql_fetch_array($result))
{
$$desig=$rows['cod_pro'];
$$cod_pro=$rows['cod_pro'];
$$descr=$rows['descr'];
$$qntes=$rows['qntes'];
$$pu=$rows['pu'];
$$tva=$rows['tva'];
}
CalculTotal($nbligne);
}



et la fonction js est la suivante:

function affiche(j){
var client=document.form1.nom.value;
if (client.length==0){
alert ("Vous devez d'abord selectionnez un client!");
document.form1.nom.focus();
}
else {
nbligne=document.form1.nbligne.value;
MyForm=document.form1;
MyForm.methode="POST";
MyForm.action="?categorie=admin&page=addfactures&action=select&nbligne="+nbligne+"&ligne="+j;
MyForm.submit();
}
}
0
ammm > ammm
20 juin 2008 à 14:28
et la partie daffichage du tableau est la suivante:

<table align="center" width="751" border="0" bordercolor="#BEDFFA">

<tr>
<td colspan="2"><div align="right">
<b>Produit:</b>
Matériel  /   

<a href="?categorie=admin&page=addfactures1">Logiciel</a>
</div>
</td>
<td><div align="right"><b>Date :</b>
<input name="date_fac" type="text" id="date_fac" readonly size="10" value='.$date_fac.'></input>
</div></td>
</tr>
<tr>
<td colspan="3"><b>Client :</b>   
<select name="nom" size="1" id="nom" onchange="selecte()">
<option value="">-Select-</option>';
while ($row=mysql_fetch_array($result1))
{
if ($nom==$row['cod_cli']){
echo"<option value=".$row[cod_cli]." SELECTED='SELECTED'>$row[nom]</option>";
}
else {
echo"<option value=".$row[cod_cli].">$row[nom]</option>";
}
}
echo'</select></td>
</tr>
<tr>
<td colspan="3">
Adresse : 
<input name="adresse" type="text" id="adresse" readonly size="20" maxlength="200" value="'.$adresse.'"></input>
   RC :          
<input name="RC" type="text" id="RC" readonly size="20" maxlength="20" value="'.$RC.'"></input> 
                               BC N° : 

<select name="num_c" size="1">
<option value="">-Select-</option>';

while ($row=mysql_fetch_array($res))
{
if ($num_c==$row['num_c']){
echo"<option value=".$row[num_c]." SELECTED='SELECTED'>$row[num_c]/$row[date_c]</option>";
}
else {
echo"<option value=".$row[num_c].">$row[num_c]/$row[date_c]</option>";
}
}
echo'</select> </td>
</tr>
<tr>
<td colspan="3">
N.I.S :     
<input name="NIS" type="text" readonly size="20" maxlength="20" value="'.$NIS.'"></input>
   N° Article : 
<input name="ART" type="text" readonly size="20" maxlength="20" value=""'.$ART.'"></input> </td>
</tr>
<tr>
<td colspan="3">
<table width="100%" border="1" bordercolor="#BBDAFF" cellspacing="0" cellpadding="0">
<tr>
<td width="6%"></td>
<td width="12%" bgcolor="#C9D7FC"><div align="center"><b>Produits</b></div></td>
<td width="36%" bgcolor="#C9D7FC"><div align="center"><b>Description</b></div></td>
<td width="12%" bgcolor="#C9D7FC"><div align="center"><b>Qte. Stock</b></div></td>
<td width="11%" bgcolor="#C9D7FC"><div align="center"><b>Qte.Cmdée</b></div></td>
<td width="12%" bgcolor="#C9D7FC"><div align="center"><b>Prix</b></div></td>
<td width="11%" bgcolor="#C9D7FC"><div align="center"><b> TVA </b></div></td>
</tr>
<tr>
<td><input type="hidden" name="nbligne" id="nbligne" value='.$nbligne.'></input></td></tr>
<tr>
<td height="18"><div align="center">
<img src="images/tab-close.png" style="cursor:pointer" onclick="suppression(1)" /> 1</div></td>
<td><div align="left">
<select name="desig1" size="1" onchange="affiche(1);">
<option value="">-Select-</option>';

while ($row=mysql_fetch_array($result2))
{
if ($desig1==$row['cod_pro']){
echo"<option value=".$row[cod_pro]." SELECTED='SELECTED'>$row[desig]</option>";
}
else {
echo"<option value=".$row[cod_pro].">$row[desig]</option>";
}
}
echo'</div><input name="sel1" type="hidden" id="sel1" value="'.$desig1.'"></input>
</td>
<td><div align="center">
<input name="descr1" type="text" id="descr1" readonly size="45" maxlength="200" value="'.$descr1.'"></input></div>
</td>
<td><div align="center">
<input name="qntes1" type="text" id="qntes1" readonly size="9" maxlength="10" value="'.$qntes1.'"></input></div>
</td>
<td><div align="center">
<input name="qnte1" type="text" id="qnte1" size="9" maxlength="10" onblur="verifQntes(1)" value="'.$qnte1.'"></input></div>
</td>
<td><div align="center">
<input name="pu1" type="text" id="pu1" readonly size="9" maxlength="10" value="'.$pu1.'"></input></div>
</td>
<td><div align="center">
<input name="tva1" type="text" id="tva1" readonly size="9" maxlength="4" value="'.$tva1.'"></input></div>
</td>
</tr>';

$j=2;
while ($j<=$nbligne){
$cod_pro="cod_pro".$j;
$qnte="qnte".$j;
$descr="descr".$j;
$qntes="qntes".$j;
$pu="pu".$j;
$tva="tva".$j;
$desig="desig".$j;
echo '<tr id="ligne_fac">
<td height="18"><div align="center">
<img src="images/tab-close.png" style="cursor:pointer" onclick="suppression('.$j.')"/> '.$j.'</div></td>
<td><div align="left">
<select name="desig'.$j.'" id="desig'.$j.'" size="1" onchange="affiche('.$j.');">
<option value="">-Select-</option>';
$sql = " SELECT * FROM produitsm ORDER BY desig";

$result = mysql_query($sql) or die("Requete Incorecte!");
while ($row=mysql_fetch_array($result))
{
if ($$desig==$row['cod_pro']){
echo"<option value=".$row[cod_pro]." SELECTED='SELECTED'>$row[desig]</option>";
}
else {
echo"<option value=".$row[cod_pro].">$row[desig]</option>";
}
}
echo'</div><input name="sel'.$j.'" type="hidden" id="sel'.$j.'" value="'.$$desig.'"></input>
</td>
<td><div align="center">
<input name="descr'.$j.'" type="text" id="descr'.$j.'" readonly size="45" maxlength="200" value="'.$$descr.'"></input></div>
</td>
<td><div align="center">
<input name="qntes'.$j.'" type="text" id="qntes'.$j.'" readonly size="9" maxlength="10" value="'.$$qntes.'"></input></div>
</td>
<td><div align="center">
<input name="qnte'.$j.'" type="text" id="qnte'.$j.'" size="9" maxlength="10" onblur="verifQntes('.$j.')" value="'.$$qnte.'"></input></div>
</td>
<td><div align="center">
<input name="pu'.$j.'" type="text" id="pu'.$j.'" readonly size="9" maxlength="10" value="'.$$pu.'"></input></div>
</td>
<td><div align="center">
<input name="tva'.$j.'" type="text" id="tva'.$j.'" readonly size="9" maxlength="4" value="'.$$tva.'"></input></div>
</td>
</tr>';
$j++;
}

echo '</table>
<label><div id="msg"><a href="#" name="add_lig" onclick="ajouter_ligne()">Ajouter ligne</a></div>
</label></td>
</tr>
<tr>
<td colspan="3"> </td>
</tr>
<tr>
<td colspan="2"> </td>
<td width="231"><div align="right"><table width="100%" border="0" align="right">
<tr>
<td width="44%" ><b>Total HT </b></td>
<td width="56%"><label><input name="MNTHT1" type="text" id="MNTHT1" size="15" value='.$MNTHT1.'></input> <b>DA</b></label></td>
</tr>
<tr>
<td ><b>Total TVA </b></td>
<td><label><input name="MNTVA1" type="text" id="MNTVA1" size="15" value='.$MNTVA1.'></input> <b>DA</b></label></td>
</tr>
<tr>
<td ><b>Total TTC</b></td>
<td><label><input name="TTC1" type="text" id="TTC1" size="15" value='.$TTC1.'></input> <b>DA</b></label></td>
</tr>
</table>
0
Utilisateur anonyme > ammm
20 juin 2008 à 14:40
Ce code reste relativement illisible (où sont les commentaires ?) ; t'as une version en ligne quelque part ? Un exemple de scénario de facturation ?
0