Affecter des valeurs à des colonnes d'un tableau

patingfree Messages postés 48 Date d'inscription vendredi 13 novembre 2009 Statut Membre Dernière intervention 30 septembre 2010 - 8 sept. 2010 à 17:33
PetoleTeam Messages postés 3426 Date d'inscription lundi 26 décembre 2005 Statut Membre Dernière intervention 14 janvier 2011 - 8 sept. 2010 à 23:20
Bonsoir à tous,
J'ai un formulaire contenant une liste déroulante permettant d'ouvrir une fenêtre popup dans laquelle une fois un choix opéré, une ligne de tableau apparait sur le formulaire(fenêtre ouvrante).j'ai pu réaliser cela grâce à votre aide car je ne connais pas grand chose en javascript mais je dois générer des lignes de tableau permettant de saisir plus d'un produit dans un devis.Ma difficulté est comment renseigner les colonnes reference, designation et prix de ma ligne générée lors de sa selection dans la popup.
Aidez moi svp car je suis vraiment en galère!

voilà le code du formulaire
<html>
<head>
<script language="javascript">
function OuvrirPopup(page,nom,option) {
ff = window.open(page,nom,option);
if (ff && ff.focus)
ff.focus();

}
function recupSelection(src, dest)
{
var valeur = src.options[src.selectedIndex].value;
if (valeur = '')
return;
dest.value = src.options[src.selectedIndex].value;
src.selectedIndex = 0;
var qte = document.getElementById('qte').value;
var puht = document.getElementById('puht').value;
var remise = document.getElementById('remise').value;
var thtva = puht*qte* (1- (remise/100));
var val_tva_produit = thtva * 0.18;
var tva_produit document.getElementById('tva_produit').value val_tva_produit;
var val_ttc_produit = thtva + val_tva_produit;
var ttc_produit document.getElementById('ttc_produit').value val_ttc_produit;
var val_total_ht = 0;
var val_total_ht = val_total_ht + thtva ;
alert(val_total_ht);
var total_ht document.getElementById('total_ht').value val_total_ht;
var val_tva_fact = total_ht * 0.18;
var tva_fact document.getElementById('tva').value val_tva_fact;
var net document.getElementById('net_a_payer').value total_ht + tva_fact;
}
</SCRIPT>

</HEAD>


<FORM NAME = "formulaire" METHOD="POST" ACTION="">
Type de produit,
<select name="type_produit">
<option value="" selected="selected">-- Sélectionnez un type de produit --</option>
<?php

// Fonction de connexion à la base de données
connexion_DB('base');

$sql = "SELECT * FROM type_produit";
$query = mysql_query($sql);
while($donnees = mysql_fetch_object($query))
{
echo "<option value='".$donnees->id."' onClick=\"OuvrirPopup('/gestion_facturation/proforma/list_pro_serveur.php','liste','widtd=400,height=200,menubar=no,status=no,left=5,top=5')\">".$donnees->appelation."</option>";
}
?>
</select>,

----

Client,
<select name="client">
<?php

// Fonction de connexion à la base de données
connexion_DB('base');

$sql = "SELECT * FROM client";
$query = mysql_query($sql);

while($donnees = mysql_fetch_object($query))
{
echo "<option value='".$donnees->id."'>".$donnees->nom."</option>";
}
?>
</select>,

<table id = "table" border="0" align="left" cellspacing="1" cellpadding="0">



Total hors taxe,
Tva 18%,
Net a payer,
----

,
,


</table>
</FORM>

</HTML>

et celui de la fenêtre popup

<HTML>
<HEAD>
<TITLE>popup des produits</TITLE>

<SCRIPT language="javascript">
var num = 0;
function Ajout(){

var list = document.getElementById('liste').options[document.getElementById('liste').selectedIndex].text;
/*alert(list);*/
var long = list.length;
/*alert(long);*/
var delim= list.indexOf(" ",0);
/*alert(delim);*/
var refer = list.substring(0,delim);
/* alert(refer);*/
var suivant = delim+1;
/* alert(suivant);*/
var delimi = list.indexOf(" ",suivant);
/* alert(delimi);*/
var desi1 = list.substring(suivant,delimi);
/*alert(desi1);*/
var suivant = delimi+1;
/*alert(suivant);*/
var delimit = list.indexOf(" ",suivant);
/* alert(delimit);*/
var desi2 = list.substring(suivant,delimit);
/*alert(desi2);*/
var design = desi1+desi2;
/*alert(design);*/
var suivant = delimit+1;
var prix = list.substring(suivant,long);


var ligne = window.opener.document.getElementById('table').insertRow(-1);

var colonne = ligne.insertCell(0);

colonne.innerHTML = 'Prdt'+num+'';
var colonne = ligne.insertCell(1);
colonne.innerHTML = '';
var colonne = ligne.insertCell(2);
colonne.innerHTML = '<select name="qte_'+num+'" id="qte_'+num+'"> <?php $fin= 1000; echo "<option selected>---</option>"; for ($i=1; $i<=$fin; $i++){ echo "<option>$i</option>";echo "
"; } ?> </select>';
var colonne = ligne.insertCell(3);
colonne.innerHTML = '';
var colonne = ligne.insertCell(4);
colonne.innerHTML = '<select name="liste_remise" onchange="recupSelection(this, this.form.remise)"> <?php $fin= 100; echo "<option selected>----</option>"; for ($i=0; $i<=$fin; $i +=5){ echo "<option>$i</option>"; echo "
"; } ?> </select>';
var colonne = ligne.insertCell(5);
colonne.innerHTML = '';
var colonne = ligne.insertCell(6);
colonne.innerHTML = '';
var colonne = ligne.insertCell(7);
colonne.innerHTML = '';

num++;
}
</SCRIPT>
</HEAD>

<CENTER>



<FORM>

<SELECT name="liste" id="liste" onChange="Ajout()" >
<option value="" selected="selected">-- Sélectionnez une valeur --</option>
<tr align="left">
<td>
<?php
//connection au serveur:
connexion_DB('base') ;

/*$sql = "SELECT *
FROM produit p
WHERE reference like 'S%'
ORDER BY reference";
$query = mysql_query($sql);*/

$sql = "SELECT *
FROM produit
WHERE reference like 'S%'";
$query = mysql_query($sql);

while($donnees = mysql_fetch_object($query))
{
echo "<option value='".$donnees->id."'>".$donnees->reference." ".$donnees->designation." ".$donnees->prix_unitaire." </option>";
}
?>
</td>
</tr>
</select>
</FORM>

</CENTER>
</HTML>

Merci d'avance

1 réponse

PetoleTeam Messages postés 3426 Date d'inscription lundi 26 décembre 2005 Statut Membre Dernière intervention 14 janvier 2011 17
8 sept. 2010 à 23:20
Bonjour,
je penses que c'est un complément au post Remplir plusieurs cases d'un formulaire avec le resultat d'une selection provenant d'une popup
beaucoup trop d'erreurs dans le code autant JavaScript que HTML

en vrac...
pour récupérer des valeurs et en faire leur addition il est souhaitable d'utiliser la méthode parseInt ou encore parseFloat et de verifier les données avec isNaN

par exemple :
var puht = parseFloat(document.getElementById("puht").value);

sur cette ligne
  var tva_produit document.getElementById('tva_produit').value val_tva_produit;
tu attribues la val_tva_produit à l'INPUT puis tu mets cette valeur dans tva_produit, je ne saisie pas trop le but.

plus loin concernant le HTML la structure
<form>
<select name="liste" id="liste" onChange="Ajout()" >
<option value="" selected="selected">-- Sélectionnez une valeur --</option>
<tr align="left">
<td>
<?php
echo"<option value='".$donnees->id."'>".$donnees->reference." ".$donnees->designation." ".$donnees->prix_unitaire." </option>";
}
?>
</td>
</tr>
</select>
</form> 

n'est pas correcte...les balises TR et TD sont de trop
<form>
  <select>
    <option></option>
    <option></option>
  </select>
</form>
pas mal de corrections à faire avant d'y voir clair donc...
;O)
0
Rejoignez-nous