Remplir plusieurs cases d'un formulaire avec le resultat d'une selection provena [Résolu]

Messages postés
48
Date d'inscription
vendredi 13 novembre 2009
Dernière intervention
30 septembre 2010
- 23 août 2010 à 12:07 - Dernière réponse :
Messages postés
48
Date d'inscription
vendredi 13 novembre 2009
Dernière intervention
30 septembre 2010
- 24 sept. 2010 à 10:30
Bonjour à tous,
Je dispose d'un formulaire avec 3 champs textes que je desire remplir automatiquement après la selection d'une ligne d'enregistrement (3 elements sur la ligne) provenant de la liste d'une fenêtre popup.
Cette popup est ouverte après la selection d'un element contenu dans une liste sur mon formulaire.
problème: lorsque je selectionne la ligne, elle renseigne les 3 champs de mon formaulaire avec les 3 elements qui devrait être séparés.
Comment affecter à chaque champ de mon formulaire sa valeur respective.

le code du formulaire

<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('db');

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

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

Reference,
Designation,
PUHT,

----

,

,


</table>
</FORM>


code de la fenêtre

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

<SCRIPT language="javascript">
function Reporter(l) {

window.opener.document.getElementById('reference').value += document.getElementById('liste').options[document.getElementById('liste').selectedIndex].text +'\n';
window.opener.document.getElementById('ref').value +=document.getElementById('liste').options[document.getElementById('liste').selectedIndex].value +';';
window.opener.document.getElementById('designation').value += document.getElementById('liste').options[document.getElementById('liste').selectedIndex].text +'\n';
window.opener.document.getElementById('des').value +=document.getElementById('liste').options[document.getElementById('liste').selectedIndex].value +';';
window.opener.document.getElementById('puht').value += document.getElementById('liste').options[document.getElementById('liste').selectedIndex].text +'\n';
window.opener.document.getElementById('pu').value +=document.getElementById('liste').options[document.getElementById('liste').selectedIndex].value +';';
}
</SCRIPT>

</HEAD>

<CENTER>



<FORM>


<SELECT name="liste" id="liste" onChange="Reporter(this)">
<option value="" selected="selected">-- Sélectionnez une valeur --</option>
<tr align="left">

<td>
<?php

//connection au serveur:
$connect = mysql_connect( '127.0.0.1', 'root', '' );

//sélection de la base de données:
mysql_select_db('db',$connect) ;


$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."</option>";
echo "<option value='".$donnees->id."'>".$donnees->reference." ".$donnees->designation." ".$donnees->prix_unitaire." </option>";
}
?>
</td>
</tr>
</select>

</FORM>

</CENTER>
</HTML>
Afficher la suite 

Votre réponse

34 réponses

Meilleure réponse
Messages postés
3435
Date d'inscription
lundi 26 décembre 2005
Dernière intervention
14 janvier 2011
- 25 août 2010 à 10:27
3
Merci
Bonjour,
pas sur d'avoir bien tout saisie, utilises la méthode split des chaines

exemple
var szTmp = "1515 Marignan Italie";
var Tab   = szTmp.split(" ");
for( var i 0, nb Tab.length; i < nb; i++) 
  alert( Tab[i]);

;O)

Merci PetoleTeam 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 86 internautes ce mois-ci

Commenter la réponse de PetoleTeam
Meilleure réponse
Messages postés
3435
Date d'inscription
lundi 26 décembre 2005
Dernière intervention
14 janvier 2011
- 9 sept. 2010 à 21:56
3
Merci
Bonjour,
commençons par la différence entre
<script language= "javascript"> et <script type="text/javascript">, plutôt que de long discours lien vers l'élément SCRIPT vu par la W3C.

pour ce qui est du code HTML et non PHP il suffit, une fois que la page est chargée par le navigateur, de regarder la page généré par le PHP donc en faisant afficher la source comme je te l'ai indiqué.

quant à la mise en forme des codes et leur colorisation, promène la souris sur la barre de titre de la boîte de saisie du texte, la 12éme icône te permet de mettre les balises suivant ton choix après sélection du texte.


Après application, j'ai toujours une liste noire et je ne comprends plus rien.
si tu as tout bien respecté il n'y a aucune raison que tu ne vois pas d'option dans le SELECT

Pour être prise en compte la ligne
tab[2].innerHTML   = Ajout_Opt( 1, 1000, 1);
doit être placée avant la ligne
O_Dest.appendChild( tab[2])
sinon c'est la gabegie

Si tu ajoutes les OPTIONs après avoir ajouté le SELECT au document il te faut passer par la création via un new Option( text, value);, ce qui peut donner une fonction du style
//--------------------------------------------
function Ajout_Option( obj_, min_, max_, inc_){
  max_++;                              // incremente pour le test
  obj_.options.length = 0;             // vide le SELECT
  obj_.options[0] = new Option("---"); // Ajoutes 1st Option selected par defaut
  for( var i min_, k 1; i < max_; i+= inc_, k++){
    obj_.options[k] = new Option( i);
  }
}
avec un appel de fonction
Ajout_Option( Obj[2], 1, 10, 1);

;O)

Merci PetoleTeam 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 86 internautes ce mois-ci

Commenter la réponse de PetoleTeam
Meilleure réponse
Messages postés
48
Date d'inscription
vendredi 13 novembre 2009
Dernière intervention
30 septembre 2010
- 13 sept. 2010 à 16:01
3
Merci
J'ai oublié de préciser que la liste de selection provient d'une fenêtre popup et les résultats se logent dans un formulaire(fenêtre ouvrante)

fenêtre popup(list_pro_serveur.php)
<HTML>
<HEAD>
<TITLE>popup des produits</TITLE>

<script type= "text/javascript">

//-- Constante pour lisibilite--//
var REFERENCE = 0;
var DESIGNATION = 1;
var PRIX = 2;
//--------------------------------
function Fct_Select( this_, dest_){
var Obj = this_;
//-- Recup de la TR parent dans la TABLE
while(( Obj = Obj.parentNode).tagName !== "TR"){}
//-- Recup numero ligne
var RowNum = Obj.rowIndex;
//-- recup Valeur
var Val = parseFloat( this_.options[this_.selectedIndex].value);
//-- Message pour DEBUG
var szMsg = 'Nous sommes sur la ligne -> ' +RowNum;
szMsg +'\nValeur du SELECT(' +this_.id +') ' +Val;
alert( szMsg);
//-- Si dest_ en parametre alors affectation valeur
if( dest_ != null){
document.getElementById('dest_ +RowNum').value = Val;
//-- Replace sur ligne 0
this_.selectedIndex = 0;
}
}
//--------------------------------------------
function Ajout_Option( obj_, min_, max_, inc_){
max_++; // incremente pour le test INF dans boucle
obj_.options.length = 0; // vide le SELECT
obj_.options[0] = new Option("- ? -"); //Ajoutes 1st Option
for( var i min_, k 1; i < max_; i += inc_, k++){
obj_.options[k] = new Option( i, i);
}
}
//--------------
function Ajout(){
//-- Recup SELECT et choix
var O_Select = document.getElementById('liste');
var Choix = O_Select.selectedIndex;
//-- Quitte si 1st ligne
if( Choix < 1) return;
//-- Recup data ligne select
var szTmp = O_Select.options[Choix].text;
var Tab = szTmp.split("|");

//-- Recup Objet Parent pour insertion
var O_Parent = window.opener ? window.opener.document : window.document;
var O_Table = O_Parent.getElementById('table');
//-- Creation de la ligne
var RowNum = O_Table.rows.length; // Get index pour les IDs
var O_Row = O_Table.insertRow(-1);
//-- Creation des cellules
var O_Col = [];
for( var i = 0; i < 6; i ++){
O_Col[i] = O_Row.insertCell( -1);
}

//-- CREATION des Champs
var Obj;
var Ind = 0; //-- index pour les O_Col de appendChild
//-- Creation INPUT et Ajout
Obj = O_Parent.createElement( 'INPUT');
O_Col[Ind++].appendChild( Obj);
//-- Initialisation diverses
Obj.id Obj.name 'reference_' +RowNum; Obj.type = "text"; Obj.size = '12'; Obj.value = Tab[ REFERENCE];

//-- Creation INPUT et Ajout
Obj = O_Parent.createElement( 'INPUT');
O_Col[Ind++].appendChild( Obj);
//-- Initialisation diverses
Obj.id Obj.name 'designation_' +RowNum; Obj.type = "text"; Obj.size = '30'; Obj.value = Tab[ DESIGNATION];

//-- Creation SELECT et Ajout
Obj = O_Parent.createElement( 'SELECT');
O_Col[Ind++].appendChild( Obj);
//-- Creation des Options
Ajout_Option( Obj, 1, 100, 1);
//-- Initialisation diverses
Obj.id Obj.name 'qte_' +RowNum; Obj.onchange = function(){ Fct_Select( this);};

//-- Creation INPUT et Ajout
Obj = O_Parent.createElement( 'INPUT');
O_Col[Ind++].appendChild( Obj);
//-- Initialisation diverses
Obj.id Obj.name 'puht_' +RowNum; Obj.type = "text"; Obj.size = 6; Obj.value = Tab[ PRIX];

//-- Select Remise
Obj = O_Parent.createElement( 'SELECT');
O_Col[Ind++].appendChild( Obj);
//-- Creation des Options
Ajout_Option( Obj, 0, 100, 5);
//-- Initialisation diverses
Obj.id Obj.name 'remise_' +RowNum; Obj.onchange = function(){ Fct_Select( this, 'val_remise_');};

//-- Creation INPUT et Ajout
Obj = O_Parent.createElement( 'INPUT');
O_Col[Ind++].appendChild( Obj);
//-- Initialisation diverses
Obj.id Obj.name 'val_remise_' +RowNum; alert('val_remise_' +RowNum);Obj.type = "text"; Obj.readOnly = "readonly"; Obj.size = 4;


}

</SCRIPT>
</HEAD>

<CENTER>



<FORM>
<SELECT name="liste" id="liste" onChange="Ajout()" >
<option value="" selected="selected">-- Sélectionnez une valeur --</option>
<?php
//connection au serveur:
$connect = mysql_connect( '127.0.0.1', 'root', '' );
//sélection de la base de données:
mysql_select_db('bd',$connect) ;
$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>";
echo "<option value='".$donnees->id."'>".$donnees->reference."|".$donnees->designation."|".$donnees->prix_unitaire." </option>";
}
?>
</select>
</FORM>

</CENTER>
</HTML>


formulaire

<html>
<head>

<script type ="text/javascript">
function OuvrirPopup(page,nom,option) {
ff = window.open(page,nom,option);
if (ff && ff.focus)
ff.focus();}
</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('bd');

$sql = "SELECT * FROM type_produit";
$query = mysql_query($sql);
while($donnees = mysql_fetch_object($query))
{

echo "<option value='".$donnees->id."' onClick=\"OuvrirPopup('/list_pro_serveur.php','liste','widtd=400,height=200,menubar=no,status=no,left=5,top=5')\">".$donnees->appelation."</option>";
}
?>
</select>,

<table id=\"table\">
----

reference_ |
designation_ |
qte_ |
puht_ |
remise_ |
val_remise |

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

----

,
,


</table>
</FORM>

</HTML>

Merci patingfree 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 86 internautes ce mois-ci

Commenter la réponse de patingfree
Meilleure réponse
Messages postés
3435
Date d'inscription
lundi 26 décembre 2005
Dernière intervention
14 janvier 2011
- 20 sept. 2010 à 18:16
3
Merci
Bonjour,
pour récupérer les données sous forme de tableau coté PHP, le plus judicieux est de ne pas mettre un NAME type qte_ +num mais qte[]

donc lors de la création les lignes de codes sont à modifier comme suit
AVANT
//-- Initialisation diverses
Obj.id Obj.name "designation_" +RowNum;
Obj.type = "text";
...

APRES
//-- Initialisation diverses
Obj.id    = "designation_" +RowNum;
Obj.name = "designation[]";
Obj.type = "text";
...

et donc coté PHP tu récupères des tableaux ordonnés par ligne

nota :
les IDs sont à conserver pour le remplissage.

...a voir peut être coté forum PHP...
;O)

Merci PetoleTeam 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 86 internautes ce mois-ci

Commenter la réponse de PetoleTeam
Messages postés
48
Date d'inscription
vendredi 13 novembre 2009
Dernière intervention
30 septembre 2010
- 25 août 2010 à 11:51
0
Merci
Bonjour petroleteam,
je tiens à te remercier pour avoir pris le temps de te pencher sur mon problème.Mille merci! j'ai trouvé une solution avec l'aide d'un ami et d'un tuto depuis mais j'ai un autre souci
voila la fonction qui m'a permis de resoudre ce problème:

function Reporter(l) {
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);
/* alert(prix);*/

window.opener.document.getElementById('reference').value += refer;
window.opener.document.getElementById('designation').value = desi1+desi2;

window.opener.document.getElementById('puht').value += prix;
/*window.opener.document.getElementById('pu').value +=document.getElementById('liste').options[document.getElementById('liste').selectedIndex].value +';';
*/
}

Mon souci actuel est:
je dispose d'un formulaire avec des champs textes et une liste(type de produit) qui ouvre une popup qui contient aussi une liste(reference designation prix) .Lorsque je selectionne une ligne dans la popup, les informations viennent se loger dans les champs textes respectifs sur le formulaire et après le choix de la remise se crée une nouvelle ligne vierge dans le formulaire .Lorsque je selectionne un autre element de la liste du popup, les enregistrements ne se logent pas dans les champs de la deuxième ligne mais plutot la première.
Je voudrais qu'après la selection d'une seconde ligne dans la popup, une autre ligne de champ se crée sur le formulaire avec les enregistrements selectionnés.C'est un véritable souci pour moi car je découvre à peine javascript et je ne sais comment resoudre ce problème.Aidez moi svp , suis en galère!

code du formulaire

//liste du formulaire
<td>
<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('facturation');

$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>
</td>

//champ texte du formulaire

Reference,
Designation,
Quantite,
PUHT,
Remises,
Remise,
Tva/produit,
Prix TTC/produit,

----

,
,
<select name="qte" id="qte"><?php $fin= 1000; echo "<option selected>---</option>";for ($i=1; $i<=$fin; $i++){
echo "<option>$i</option>";
echo "
";
}
?>
</select>,

,
<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>,

</td>
</td>
,



//code javascript permettant de créer la ligne sans les enregistrements
<SCRIPT>
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 nouvelign = document.getElementById('table').insertRow(-1);
var newCell = nouvelign.insertCell(0);
newCell.innerHTML = '';
var newCell = nouvelign.insertCell(1);
newCell.innerHTML = '';
var newCell = nouvelign.insertCell(2);
newCell.innerHTML = '<select name="qte" id="qte"> <?php $fin= 1000; echo "<option selected>---</option>"; for ($i=1; $i<=$fin; $i++){ echo "<option>$i</option>";echo "
"; } ?> </select>';
var newCell = nouvelign.insertCell(3);
newCell.innerHTML = '';
var newCell = nouvelign.insertCell(4);
newCell.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 newCell = nouvelign.insertCell(5);
newCell.innerHTML = '';
var newCell = nouvelign.insertCell(6);
newCell.innerHTML = '';
var newCell = nouvelign.insertCell(7);
newCell.innerHTML = '';
}
</SCRIPT>

Merci pour votre aide
Commenter la réponse de patingfree
Messages postés
3435
Date d'inscription
lundi 26 décembre 2005
Dernière intervention
14 janvier 2011
- 25 août 2010 à 13:54
0
Merci
il ne faut pas oublier de changer les IDs et NAMEs pour pouvoir faire une réelle création, c'est donc à gérer dans la fonction.
un petit exemple pour le principe, pardon un des principes
<html>
<head>
<script type="text/javascript">
var Num = 0;  // Num pour gestion Ligne
//--------------
function Ajout(){
  //-- Recup le select
  var O_Liste = document.getElementById('selection');
  //-- Recup la ligne selectionnee
  var Index = O_Liste.selectedIndex;
  //-- Recup le libelle
  var szTmp = O_Liste.options[Index].text; 
  //-- Deploie la chaine
  var Tab = szTmp.split(" "); 
  //-- Recup Objet pour insertion
  var O_Dest  = document.getElementById('insertion');

  //-- Recup objet pour mise a jour  
  var O_Input = new Array();
  O_Input[0] = document.getElementById('champ0_' +Num);
  //-- Si n'existe pas
  if( !O_Input[0]){
    //-- Creation INPUT
    O_Input[0] = document.createElement( 'INPUT');
    //-- Ajout
    O_Dest.appendChild( O_Input[0]);
    //-- Affectation Name et ID
    O_Input[0].id    = 'champ0_' +Num;
    O_Input[0].name  = 'champ0_' +Num;
    //-----------------
    //-- DEUXIEME CHAMP 
    O_Input[1] = document.createElement( 'INPUT');
    //-- Ajout
    O_Dest.appendChild( O_Input[1]);
    //-- Affectation Name et ID
    O_Input[1].id    = 'champ1_' +Num;
    O_Input[1].name  = 'champ1_' +Num;
    //-- Retour ligne juste for plus de clarete
    O_Dest.appendChild( document.createElement('BR'));
    //-- Incrementation pour prochain
    Num ++;    
  }
  //-- Ajout des données
  O_Input[0].value = Tab[0];
  O_Input[1].value = Tab[1];
} 
</script>
</head>

<select id="selection" name="selection">
  <option>Data_01 001 Ligne_01</option>
  <option>Data_02 002 Ligne_02</option>
  <option>Data_03 003 Ligne_03</option>
  <option>Data_04 004 Ligne_04</option>
</select>




</html> 

c'est très optimisable, mais c'est pour le principe

PS :
Merci d'utiliser les balises de codage pour plus de lisibilité.

;O)
Commenter la réponse de PetoleTeam
Messages postés
48
Date d'inscription
vendredi 13 novembre 2009
Dernière intervention
30 septembre 2010
- 25 août 2010 à 14:10
0
Merci
Merci encore une fois de m'avoir répondu.J'aimerais poser une question que tu trouveras peut être stupide
le code ci dessous est ce pour le formulaire ou la fenêtre popup? car les lignes contenues dans le select proviennent de la popup
Commenter la réponse de patingfree
Messages postés
48
Date d'inscription
vendredi 13 novembre 2009
Dernière intervention
30 septembre 2010
- 25 août 2010 à 14:23
0
Merci
Je viens de tester le principe et il marche.j'adapte et te donne une suite.
Merci encore
Commenter la réponse de patingfree
Messages postés
48
Date d'inscription
vendredi 13 novembre 2009
Dernière intervention
30 septembre 2010
- 26 août 2010 à 11:20
0
Merci
Bonjour Petrole Team,
J'arrive à inserer les input mais pas les select.
Une idée?
Commenter la réponse de patingfree
Messages postés
3435
Date d'inscription
lundi 26 décembre 2005
Dernière intervention
14 janvier 2011
- 26 août 2010 à 13:07
0
Merci
Bonjour,
de la même manière que le reste non...
Mais pourquoi dupliquer les SELECTs?

au fait : Petr
oleTeam
;O)
Commenter la réponse de PetoleTeam
Messages postés
48
Date d'inscription
vendredi 13 novembre 2009
Dernière intervention
30 septembre 2010
- 26 août 2010 à 13:20
0
Merci
Bonjour PetroleTeam,
J'ai deux select avec des codes php.j'ai esssayé ceci et ça ne marche pas.La liste s'affiche mais sans elements.

/-- Recup Objet pour insertion
var O_Dest = window.opener.document.getElementById('table');

//-- Recup objet pour mise a jour
var tab = new Array();
tab[0] = window.opener.document.getElementById('reference_' +num);
//-- Si n'existe pas
if( !tab[0]){
//-----------------
//-- PREMIER CHAMP
//-- Creation INPUT
tab[0] = window.opener.document.createElement( 'INPUT');
//-- Ajout
O_Dest.appendChild( tab[0]);
//-- Affectation Name et ID
tab[0].id = 'reference_' +num; tab[0].name = 'reference_' +num; tab[0].size = '10';

//-- DEUXIEME CHAMP
tab[1] = window.opener.document.createElement( 'INPUT');
//-- Ajout
O_Dest.appendChild( tab[1]);
//-- Affectation Name et ID
tab[1].id = 'designation_' +num; tab[1].name = 'designation_' +num;

//-----------------
//-- TROISIEME CHAMP
tab[2] = window.opener.document.createElement( 'SELECT');
//-- Ajout
O_Dest.appendChild( tab[2]);
//-- Affectation Name et ID
tab[2].id = 'qte_' +num; tab[2].name = 'qte_' +num;

//-- QUATRIEME CHAMP
tab[3] = window.opener.document.createElement( 'INPUT');
//-- Ajout
O_Dest.appendChild( tab[3]);
//-- Affectation Name et ID
tab[3].id = 'pu_' +num; tab[3].name = 'pu_' +num;


//-- Incrementation pour prochain
num ++;
}
//-- Ajout des données
var selec_val = "<?php $fin= 1000; echo "<option selected>---</option>"; for ($i=1; $i<=$fin; $i++){ echo "<option>$i</option>";echo "
"; } ?>";
tab[0].value = refer;
tab[1].value = design;
tab[2].value = selec_val;
tab[3].value = prix;
Commenter la réponse de patingfree
Messages postés
3435
Date d'inscription
lundi 26 décembre 2005
Dernière intervention
14 janvier 2011
- 26 août 2010 à 13:32
0
Merci
pas relue tout le code!
MAIS sur la ligne suivante mettre
tab[2].innerHTML = selec_val;
au lieu de
tab[2].value = selec_val;

Je ne vois plus l'insertion dans une TABLE.

Une autre soluce est de
- cloner la ligne
- l'ajouter
- parcourir les élément pour modifier le ID et NAME

;O)
Commenter la réponse de PetoleTeam
Messages postés
48
Date d'inscription
vendredi 13 novembre 2009
Dernière intervention
30 septembre 2010
- 26 août 2010 à 13:45
0
Merci
hélas ça coince toujours!
Commenter la réponse de patingfree
Messages postés
48
Date d'inscription
vendredi 13 novembre 2009
Dernière intervention
30 septembre 2010
- 26 août 2010 à 13:46
0
Merci
j'ai une liste noire.n'est ce pas parce qu'on intègre du php dans du javasvript?
Commenter la réponse de patingfree
Messages postés
3435
Date d'inscription
lundi 26 décembre 2005
Dernière intervention
14 janvier 2011
- 26 août 2010 à 14:18
0
Merci
le PHP n'est pas nécessaire ici, remplaces le par le code JavaScript équivalent...
;O)
Commenter la réponse de PetoleTeam
Messages postés
48
Date d'inscription
vendredi 13 novembre 2009
Dernière intervention
30 septembre 2010
- 26 août 2010 à 17:55
0
Merci
j'ai un veritable souci avec le javascript

ce code permet de compter de 1 à 1000 en php
<select name="qte" id="qte">
<?php
$fin= 1000;
echo "<option selected>---</option>";
for ($i=1; $i<=$fin; $i++){
echo "<option>$i</option>";
echo "
";
}
?>
</select>

comment puis je afficher le $i en javascript

y' a t'il moyen d'integrer la propriété innerhtml dans ce code pour la construction des lignes et colonnes
merci pour votre aide.
Commenter la réponse de patingfree
Messages postés
3435
Date d'inscription
lundi 26 décembre 2005
Dernière intervention
14 janvier 2011
- 27 août 2010 à 07:38
0
Merci
Bonjour,
j'ai un veritable souci avec le javascript
rien de bien complexe par rapport aux autres langages...
<?php
$fin= 1000;
echo "<option selected>---</option>";
for ($i=1; $i<=$fin; $i++){
echo "<option>$i</option>";
echo "
"; // pas indispensable ICI
}
?> 
s'écrit aussi simplement que cela
var fin = 1000;
var szTmp = "<option selected>----</option>";
for( var i=0; i< fin; i ++){
  szTmp +="<option>" + i +"</option>";
}
et tu fais ce que tu veux avec la szTmp, par exemple
O_Select.innerHTML = szTmp;

;O)
Commenter la réponse de PetoleTeam
Messages postés
48
Date d'inscription
vendredi 13 novembre 2009
Dernière intervention
30 septembre 2010
- 8 sept. 2010 à 13:40
0
Merci
bonjour petroleteam,
milles excuses pour le silence!j'étais en voyage pour des obsèques
Pour revenir à nos moutons, mon problème n'est toujours pas resolu!je n'arrive toujours pas à recupérer le select
Commenter la réponse de patingfree
Messages postés
3435
Date d'inscription
lundi 26 décembre 2005
Dernière intervention
14 janvier 2011
- 8 sept. 2010 à 18:38
0
Merci
Bonjour,
...je n'arrive toujours pas à recupérer le select...
- ou est ce que tu ne récupères pas le SELECT ?
- l'ajout des lignes fonctionne t-il correctement ?
- le SELECT a-t-il un NAME?
- as tu une page en ligne que l'on puisse se rendre compte ?

ah j'oubliais, bon retour...
;O)
Commenter la réponse de PetoleTeam
Messages postés
48
Date d'inscription
vendredi 13 novembre 2009
Dernière intervention
30 septembre 2010
- 8 sept. 2010 à 19:06
0
Merci
voilà le code de ma fenêtre popup dans laquelle après avoir avoir opéré un choix, la ligne est générée sur le formulaire

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

<SCRIPT language="javascript">

function Quantite(){
var fin = 1000;
//var qtite = "<option selected>----</option>";
for( var i=0; i< fin; i++){
var qtite +="<option>" +i+"</option>";}
}

<!--
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);


//-- Recup Objet pour insertion
var O_Dest = window.opener.document.getElementById('table');
var num = 0;
//-- Recup objet pour mise a jour
var tab = new Array();
tab[0] = window.opener.document.getElementById('reference_' +num);
//-- Si n'existe pas
if( !tab[0]){
//-----------------
//-- PREMIER CHAMP
//-- Creation INPUT
tab[0] = window.opener.document.createElement( 'INPUT');
//-- Ajout
O_Dest.appendChild( tab[0]);
//-- Affectation Name et ID
tab[0].id = 'reference_' +num; tab[0].name = 'reference_' +num; tab[0].size = '10';

//-- DEUXIEME CHAMP
tab[1] = window.opener.document.createElement( 'INPUT');
//-- Ajout
O_Dest.appendChild( tab[1]);
//-- Affectation Name et ID
tab[1].id = 'designation_' +num; tab[1].name = 'designation_' +num;

//-----------------
//-- TROISIEME CHAMP
tab[2] = window.opener.document.createElement( 'SELECT');
//-- Ajout
O_Dest.appendChild( tab[2]);
//-- Affectation Name et ID
tab[2].id = 'qte_' +num; tab[2].name = 'qte_' +num;

//-- QUATRIEME CHAMP
tab[3] = window.opener.document.createElement( 'INPUT');
//-- Ajout
O_Dest.appendChild( tab[3]);
//-- Affectation Name et ID
tab[3].id = 'pu_' +num; tab[3].name = 'pu_' +num;

}
//-- Incrementation pour prochain
num ++;

//-- Ajout des données
// Quantite();
tab[0].value = refer;
tab[1].value = design;
//tab[2].innerHTML = ;
tab[3].value = prix;



}
</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:
$connect = mysql_connect( '127.0.0.1', 'root', '' );

//sélection de la base de données:
mysql_select_db('facturation',$connect) ;

/*$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>

le code de mon 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('facturation');

$sql = "SELECT * FROM type_produit";
$query = mysql_query($sql);
while($donnees = mysql_fetch_object($query))
{

echo "<option value='".$donnees->id."' onClick=\"OuvrirPopup('./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('facturation');

$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,
----

,
,


</tr>

</table>
</table>
</FORM>

</HTML>

Après la sélection d'une ligne dans la popup les colonnes renseignées se créent sur le formulaire sauf que les valeurs contenues dans le select ne sont pas récupérées.
Commenter la réponse de patingfree

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.