debutant javascript --> formulaire

Eléphant du PHP | 119 Messages

06 juin 2006, 10:14

Bonjour,

je suis novice en javascript mais je voudrais faire un petit truc pour mon formulaire.

en fait voici mon cas:

j'ai un formulaire ou je peux rajouter des produits.
chaque produit a des caracteristiques mais le nombre de caracteristique (poids taille etc...) depend du produit.

(ex: un produit A peut avoir en caracteristique le poids et la largeur et un produit B peut avoir juste la hauteur).

doncje voudrais un petit champs texte ou je demande a l'utilisateur le nombre de caracteristique qu'il compte attribuer a ce produit mais sans recharger la page.

et ainsi il m'affiche X liste d'option qui contiennent les caracteristiques definient dans la base de données.

j'ai ce code qui me permet de recuperer dans une liste d'option les données.

<select name="caracteristique">
		<?php
		$sql2 = mysql_query ("SELECT * FROM caracteristique");
		while($req2 = mysql_fetch_array ($sql2))
		{
		?>
			<option><?php echo stripslashes($req2['car_lib']); ?></option>
		<?php
		}
		?>
		</select>
si quelqu'un peut m'aider a resoudre mon petit probleme car je ne vois pas comment organiser mon code

Merci beaucoup d'avance

Cordialement^

^^ :oops: :oops:

Eléphanteau du PHP | 30 Messages

06 juin 2006, 16:31

PFFF, je ne suis pas expert mais j'ai pensé à un truc.

Dans ta table:
Tu t'arranges pour avoir toutes les caractéristiques disponibles pour chaque produit.
Quand tu ajoutes un article, tu colles une valeur dans les colonnes des caractéristiques le concernant (certaines resteront donc vides).
Ta table ressemblera alors à une sorte de grille dont certaines cases sont renseignées et les autres pas (oui je sais je me répète).

Dans ton formulaire :
Tu créé une liste déroulante par exemple qui contiendra le nom de tous les produits. Quand on en sélectionne un, un script Ajax va interroger la table sur l'identifiant du produit, il retourne la liste des champs de caractéristiques non vides.
On affiche alors une série de cases à cocher pour choisir les caractéristiques retenues.

Si ton but est de gérer plusieurs articles, je pense qu'après cette sélection, un second script Ajax te permettra d'enregistrer les valeurs transmises dans une table pour la réinterroger et afficher les articles retenus dans un div.

Voilà, je t'ai mis sur une piste, j'espère qu'elle est viable.
Je ne te fournis pas le code car je débute aussi en Ajax.

Bon courage.

Eléphant du PHP | 119 Messages

07 juin 2006, 08:47

oui c'est exactement ce que je veux faire avec une requete qui interroge ma table des caracteristique.
en fait si l'utilisateur dit par le biais d'un <input texte> qu'il veut 3 caracteristique pour ce produit, je veu qu'il m'affiche 3 listbox mais debutant en javascript je ne vois pas comment faire :oops: :oops: :oops:

Eléphanteau du PHP | 30 Messages

07 juin 2006, 09:20

Bon, je ne vais pas te faire un cours vu que je tâtonne aussi, mais voici une page assez bien foutue :
http://www.xul.fr/xml-ajax.html

Eléphant du PHP | 138 Messages

08 juin 2006, 18:43

salut
tu peux le faire en AJAX mais je ne sais pas si c'est réellement utile car il semble que dans tes champs tu mettes à chaque fois les memes caractéristiques.
Donc je procèderais comme cela en premier lieu:
1. je récupère les différentes caractéristiques et créant une variable qui contient le code html pour faire une liste déroulante:
<?php
   $select = '<select name="caracteristique">';       
   $sql2 = mysql_query ("SELECT * FROM caracteristique");
   while($req2 = mysql_fetch_array ($sql2))
   {
      $select .= '<option>'. stripslashes($req2['car_lib']).'</option>';
    }       
    $select .= '</select>';
?>
2. j'intègre ce code html dans une variable javascript:
<script>
<!--
 var champSelect = <?= $select ?> ;
-->
</script>
3. dans le contenu même de la page, lorsque le client à choisir un article, je mettrais un champ du type
donner le nb de caractéristiques : <input type="text" value="0" onchange="creer_liste_deroul(this.value)" />
<div id="affichListe"></div><!-- calque vide qui va faire l'affichage des listes mais qui sera rempli par la fonction creer_liste_deroul -->
4. et enfin la fonction qui créer l'affichage des liste
<script>
function creer_liste_deroul( x ){
  var text_liste="";
  for( i= 0; i < x ; i++){
  	text_liste + = champSelect ;//concatenate x fois le code html d'une liste deroulante 
  }
  document.getElementById('affichListe').innerHTML = text_liste;
}
</script>
Voilà l'ordre des choses pour faire, je pense, ce que tu veux mais il faut un peu adapter car j'ai répondu rapidement
Il y a des gens qui ont une bibliothèque comme des eunuques ont un harem (V. Hugo)