Formulaire...

Petit nouveau ! | 5 Messages

29 janv. 2007, 19:13

Bonjour,

Je me presente, je suis étudiants en MRIM (micro-informatique et réseaux: installation et Maintenance) et en se moment je suis en stage dans une petite entreprise qui souhaite faire un site internet où il pourra vendre des cartouches par commande.

Bon voila, le probleme c'est que je ne suis pas très callé en php vue que mon BTS info de gestion, c'est l'année prochaine que je le commence. j'ai déja quelques bases en php mais ce ne sont pas les bonnes, du moin, pas celles qui vont me permettre de faire ce que je dois faire pour satisfaire mon patron.

Bon, pour en venir au but, je doit mettre en place un système de formulaire dépendant. En faites, je dois faire comme ce site http://www.printeo.fr , j'ai donc un formulaire à choix multiples et quand je choisis une rubrique, ça influance sur le deuxième formulaire, ce qui va me permettre de trier facilement par marque en sachant que j'ai une base de donnée mysql de 17000 cartouche environs.

Donc ce que je sais déja est simple, j'ai ma base de donnée qui comporte une table de 8champs, parmis ces 8champs, il y en a un qui se nomme marque, et c'est dans ce champs que je prend les valeur qui vont etre inscrit dans mon formulaire mais faut que j'utilise une certaine commande nommé array_unique pour évité les doublons lorsque qu'il ira y chercher les informations...

Bon désolé de ne pas vous fournir de plus amples informations mais je n'ai que ça sous la main pour l'instant mais je compte bien vous en fournir d'avantage.

Merci d'avance pour vos réponse et bonne soirée ;)
Modifié en dernier par Shishiza90 le 30 janv. 2007, 17:51, modifié 1 fois.

ViPHP
ViPHP | 3607 Messages

29 janv. 2007, 19:28

Bonjour,
qu'est-ce que tu attends de nous au juste ? :?

Petit nouveau ! | 5 Messages

29 janv. 2007, 20:16

Erf c'est vrai que ce n'est pas très explicite, j'aimerais qu'on me suivent étape par étape, qu'on m'aide à le réalisé car je suis sur que c'est tout simple (à dire :D)...
je vais commencer le code, je vous le founiré et si vous pourrez corriger ou m'indiqué ce qu'il faut faire ^^...

Merci encore ;)

ViPHP
ViPHP | 3607 Messages

29 janv. 2007, 20:33

Bon et bien comme tu l'as dis même... commence le code, et reviens nous voir si tu as des problèmes (de conception ou de codage ...) ;-)

Petit nouveau ! | 5 Messages

30 janv. 2007, 12:17

voila, j'ai commencé le code et je suis déja bloqué :? ...
Bon, en même temps, c'est là qu'est le problème à l'origine :D.

Donc mon code c'est :
<?php
$based = "localhost";
$admin = "root";
$password = "";
$bdd = "base";
$connect = mysql_connect($based,$admin,$password);
mysql_select_db($bdd, $connect) or die("Impossible de se connecter");
?>
<html>
<head>
</head>
<body>
<form name="form1" method="post" onClick="?page=video">
  <div align="center">
    <select name="video">
<?php 
$base = 'SELECT Marques FROM tarif$';
$req = mysql_query($base) or die('Erreur SQL !'.$sql.''.mysql_error());
while($data = mysql_fetch_array($req)){
echo '<option>'.$data['Marques'].'</option>';
}?>
    </select>
	<input name="SUBMIT" type="SUBMIT" value="OK">
  </div>
</form>
</body>
</html>
Bon voila, jusque là tout va bien à l'exeption d'une chose, le fameux Array_unique, je ne sais pas comment le placer.
Car pour l'instant, je récupère bien toute les marques mais un peu trop, c'est à dire que j'ai ça :
Image
Donc mon but est d'afficher une seul fois chaques marques.

Je vais continuer de chercher en attendant vos réponses, et merci d'avance ;)...
Modifié en dernier par Shishiza90 le 30 janv. 2007, 17:52, modifié 1 fois.

Petit nouveau ! | 7 Messages

30 janv. 2007, 12:28

<?php
$base = 'SELECT DISTINCT Marques FROM tarif$'; 
Je suis nulle en php mais il me semble que l'ajout du distinct va résoudre ton problème.

Quelqu'un de vraiment bon pour confirmer ?

A+
Fugu

Petit nouveau ! | 5 Messages

30 janv. 2007, 12:34

Merci pour ta réponse...
Tu à l'air déja meilleur que moi :D.

Donc bon ça fonctionne niquel, je vais continuer mon projet et si j'ai un problème, je reviens vous voir ^^...

Merci pour ta réponse Fugugirl ;).

Eléphant du PHP | 145 Messages

30 janv. 2007, 17:46

Voila en faite j'ai encore un problème (je suis Shishiza90 : problème de pseudo résolu ^^).

Bon, je ne sais pas par quoi commencer ni comment m'y prendre pour faire deux formulaire dépendant.
Je veux dire par dépendant, le deuxième formulaire me propose les modèles de canon si je prend canon dans le premier formulaire, et pareil pour Lexmark par exemple...

Je sais à peu près le système que je vais faire mais je ne sais pas comment le mettre en oeuvre. Ce que je veux faire c'est :

Code : Tout sélectionner

if canon alors je vais récupérer tous les modèles dans la BDD qui correspond au champ Canon
Bon ça ce n'est pas difficile, le plus dur c'est de mettre en relation ces deux formulaires puis que le curseurs du premier reste sur la selection.
J'ai fais un peu le même système sur mon site internet avec des videos ( http://shishiza90.descis.info ) mais ce n'est pas encore ça car là je ne veux pas qu'on soit obliger de cliquer "OK".

Bon je vais continuer a chercher avant de m'embrouiller moi même :P...

Merci pour vos réponses ;)
La culture, c'est comme la confiture, moins on en a, plus on l'étale.

ViPHP
ViPHP | 2144 Messages

30 janv. 2007, 17:54

Déja, je pense qu'il vaudrait mieux commencer par améliorer un peu la base de donnée, en ayant une table "marque" et une table "modele"

Code : Tout sélectionner

[u]marque[/u] id nom [u]modele[/u] id modele idMarque
ça évitera d'avoir de la redondances et donc éviter des problèmes d'encodage.

Ensuite, tu trouveras un poste dans la faq qui t'expliquera comment réaliser une double liste liée: http://www.phpfrance.com/forums/voir_sujet-4562.php

Eléphant du PHP | 145 Messages

30 janv. 2007, 19:01

Merci pour le lien iclo...

Pour ce qui est de la base de donnée, je ne peux absolument rien toucher.
J'avais l'idée de faire ça au début mais mon patron ne veux rien savoir car il a son fichier excel puis fait il juste une conversion en sql :?...

Donc finalement je suis obliger de me débrouiller avec les moyens du bord puis tampis si il n'aura pas la meilleure performance, le principale, c'est qu'il a ce qu'il veut ^^.
Je vais suivre le petit tuto que tu m'a donné et je vous tiens au courant :D...

Merci pour vos réponses ;)
La culture, c'est comme la confiture, moins on en a, plus on l'étale.

ViPHP
ViPHP | 2144 Messages

30 janv. 2007, 20:26

rhhaaa, ces patrons :D :D
Plus monte dans la hiérarchie, plus l'intéligence tombe 8-) 8-) :lol: :lol:

Eléphant du PHP | 145 Messages

31 janv. 2007, 17:32

Tu peux le dire Iclo :D...
Mais dis moi, t'es pas mal haut dans la hierarchie de ce forum non :P?

Bon revenons à nos mouton, j'ai un problème comme 98% des gens ici :?.
Comment on fait pour faire un formulaire de type "Select" donc une liste déroulante mais dynamique, je veux dire par là que la page se rafraichie dés qu'on choisis une option car là je suis obligé de rajouté un formulaire de type "Input" et c'est assez chiant :D...

Merci de vos réponse ;).
La culture, c'est comme la confiture, moins on en a, plus on l'étale.

Eléphant du PHP | 445 Messages

31 janv. 2007, 20:36

Pour faire quelque chose de dynamique côté client, tourne toi vers l'AJAX.

Une recherche sur ce forum te permettra de trouver des explications.

Peut-être que ce lien pourra t'aider : http://www.phpfrance.com/forums/viewtopic.php?t=4562
LLDC
Ulti

Eléphant du PHP | 145 Messages

01 févr. 2007, 11:33

Et y aurais pas un moyen de le faire en php car d'après l'exemple 100% en php de Cyrano dans ton lien, ça fonctionne...

Mais le problème c'est que son script ne s'adapte pas du tout au mien puis je dois tout faire en php sous ordre de mon patron car il pense que si le client désactive javascript ou autre, bah il ne pourra pas commander etc... :(.

En faites, je suis grave contraigné dans cette histoire lol, je ne peux pas changer la base et je dois me restreindre au php et html.

Bon je peux déja vous présenter mon code et ma base là :

BASE :

Code : Tout sélectionner

-- phpMyAdmin SQL Dump -- version 2.6.1 -- http://www.phpmyadmin.net -- -- Serveur: localhost -- Généré le : Jeudi 01 Février 2007 à 10:30 -- Version du serveur: 4.1.9 -- Version de PHP: 4.3.10 -- -- Base de données: `base` -- -- -------------------------------------------------------- -- -- Structure de la table `tarif$` -- CREATE TABLE `tarif$` ( `identifiant` int(11) NOT NULL auto_increment, `Marques` varchar(255) default NULL, `Références Machines` varchar(255) default NULL, `Observations` varchar(255) default NULL, `CODE OEM` varchar(255) default NULL, `CODE MEDIADIS` varchar(255) default NULL, `Types de Produits` varchar(255) default NULL, `OEM` varchar(255) default NULL, `PRIX UNITAIRE € HT` float default NULL, PRIMARY KEY (`identifiant`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=51 ; -- -- Contenu de la table `tarif$` -- INSERT INTO `tarif$` VALUES (1, 'ABATON', 'Laserscript 6ppm', 'Toner 1500 Pages ( Bte de 2 x 320 g)', 'TN3760', 'MDD8305', 'TONER', NULL, 11.48); INSERT INTO `tarif$` VALUES (2, 'ABATON', 'Laserscript II 6ppm', 'Toner 1500 Pages ( Bte de 2 x 320 g)', 'TN3760', 'MDD8305', 'TONER', NULL, 11.48); INSERT INTO `tarif$` VALUES (3, 'ABATON', 'Laserscript Lx 6ppm', 'Toner 1500 Pages ( Bte de 2 x 320 g)', 'TN3760', 'MDD8305', 'TONER', NULL, 11.48); INSERT INTO `tarif$` VALUES (4, 'ABATON', 'Laserscript P5 6ppm', 'Toner 1500 Pages ( Bte de 2 x 320 g)', 'G9956066/1', 'MDD8305', 'TONER', NULL, 11.48); INSERT INTO `tarif$` VALUES (5, 'ACOM COMPUTER', 'MC 4806 Micr 6ppm', 'Toner 1500 Pages ( Bte de 2 x 320 g)', 'TN3760', 'MDD8305', 'TONER', NULL, 11.48); INSERT INTO `tarif$` VALUES (6, 'ACOM COMPUTER', 'MC 4808 Micr 8ppm', 'Toner 1500 Pages ( Bte de 2 x 320 g)', '9288 1706-1', 'MDD8305', 'TONER', NULL, 11.48); INSERT INTO `tarif$` VALUES (7, 'ADCOMP', 'X 132 SP', 'Ruban matricielle Vendu par 2, prix pour 2', 'G9943014', 'BR9000', 'MATRICIELLE', NULL, 14.28); INSERT INTO `tarif$` VALUES (8, 'ADCOMP', 'X 50 SP', 'Ruban matricielle Vendu par 2, prix pour 2', '19-9013-558', 'BR9000', 'MATRICIELLE', NULL, 14.28); INSERT INTO `tarif$` VALUES (9, 'ADCOMP', 'X 80 SP', 'Ruban matricielle Vendu par 2, prix pour 2', 'G9943014', 'BR9000', 'MATRICIELLE', NULL, 14.28); INSERT INTO `tarif$` VALUES (10, 'ADLER', '7704', 'Tambour vert', 'MT904D', 'MDN8111', 'KIT OPC', NULL, 60.75); INSERT INTO `tarif$` VALUES (11, 'ADLER', '7704', 'Toner 1500 Pages ( Bte de 2 x 320 g)', 'TN3760', 'MDD8305', 'TONER', NULL, 11.48); INSERT INTO `tarif$` VALUES (12, 'ADLER', 'SDR 7704', 'Toner 1500 Pages ( Bte de 2 x 320 g)', 'TN3760', 'MDD8305', 'TONER', NULL, 11.48); INSERT INTO `tarif$` VALUES (13, 'ADLER', 'SDR 7708', 'Toner 1500 Pages ( Bte de 2 x 320 g)', 'TN3760', 'MDD8305', 'TONER', NULL, 11.48); INSERT INTO `tarif$` VALUES (14, 'ADP', '200 N', 'Ruban matricielle Vendu par 2, prix pour 2', '92881302-01', 'FR3400', 'MATRICIELLE', NULL, 8.22); INSERT INTO `tarif$` VALUES (15, 'ADP', 'Printronix', 'Ruban matricielle vendu par 2, prix pour 2', '102247-001', 'PR300', 'MATRICIELLE', NULL, 25); INSERT INTO `tarif$` VALUES (16, 'ADP', 'Printronix', 'Ruban matricielle vendu par 2, prix pour 2', '675-001', 'PR300', 'MATRICIELLE', NULL, 25); INSERT INTO `tarif$` VALUES (17, 'ADVANCE INFO', '905', 'Ruban matricielle vendu par 2, prix pour 2', '107675001', 'PR300', 'MATRICIELLE', NULL, 25); INSERT INTO `tarif$` VALUES (18, 'ADVANCE INFO', '3510', 'Ruban matricielle vendu par 2, prix pour 2', 'C3208A', 'PR300', 'MATRICIELLE', NULL, 25); INSERT INTO `tarif$` VALUES (19, 'ADVANCE INFO', 'Advisor', 'Ruban matricielle vendu par 2, prix pour 2', '675-001', 'PR300', 'MATRICIELLE', NULL, 25); INSERT INTO `tarif$` VALUES (20, 'ADVANCED TECH', 'Laserscript II', 'Toner 1500 Pages ( Bte de 2 x 320 g)', 'TN3760', 'MDD8305', 'TONER', NULL, 11.48); INSERT INTO `tarif$` VALUES (21, 'ADVISOR', 'Advisor', 'Ruban matricielle vendu par 2, prix pour 2', '675-001', 'PR300', 'MATRICIELLE', NULL, 25); INSERT INTO `tarif$` VALUES (22, 'ADVISOR', 'Printronix', 'Ruban matricielle vendu par 2, prix pour 2', '3205-1217', 'PR300', 'MATRICIELLE', NULL, 25); INSERT INTO `tarif$` VALUES (23, 'ADVISOR', 'Printronix', 'Ruban matricielle vendu par 2, prix pour 2', '675-001', 'PR300', 'MATRICIELLE', NULL, 25); INSERT INTO `tarif$` VALUES (24, 'AGFA', 'X 100', 'Vendu par 4', '88447', 'MCA 924', 'TONER COPIEUR', NULL, 10.73); INSERT INTO `tarif$` VALUES (25, 'AGFA', 'X 110', 'Vendu par 2', 'CB 928', 'MCA 928', 'TONER COPIEUR', NULL, 13.6); INSERT INTO `tarif$` VALUES (26, 'AGFA', 'X 120', 'Vendu par 2', 'CB 920', 'MCA934', 'TONER COPIEUR', NULL, 13.17); INSERT INTO `tarif$` VALUES (27, 'AGFA', 'X 18', 'Vendu par 3', 'CB 921', 'MCA 756', 'TONER COPIEUR', NULL, 7.78); INSERT INTO `tarif$` VALUES (28, 'AGFA', 'X 200E', 'Vendu par 4', '84522', 'MCA 924', 'TONER COPIEUR', NULL, 10.73); INSERT INTO `tarif$` VALUES (29, 'AGFA', 'X 210', 'Vendu par 2', 'CB 929', 'MCA 928', 'TONER COPIEUR', NULL, 13.6); INSERT INTO `tarif$` VALUES (30, 'AGFA', 'X 220', 'Vendu par 2', '200410', 'MCA 936', 'TONER COPIEUR', NULL, 23.33); INSERT INTO `tarif$` VALUES (31, 'AGFA', 'X 25', 'Vendu par 6', '888215 Type1130D,1230D ', 'MCA 757', 'TONER COPIEUR', NULL, 8.77); INSERT INTO `tarif$` VALUES (32, 'AGFA', 'X 28', 'Vendu par 4', 'TYPE 401 B 8932604', 'MCA 755', 'TONER COPIEUR', NULL, 12.07); INSERT INTO `tarif$` VALUES (33, 'AGFA', 'X 300', 'Vendu par 3', 'CB 756', 'MCA 921', 'TONER COPIEUR', NULL, 16.3); INSERT INTO `tarif$` VALUES (34, 'AGFA', 'X 310', 'Vendu par 2', 'CB 929', 'MCA 929', 'TONER COPIEUR', NULL, 36.13); INSERT INTO `tarif$` VALUES (35, 'AGFA', 'X 35', 'Vendu par 4', 'CB 924', 'MCA 755', 'TONER COPIEUR', NULL, 12.07); INSERT INTO `tarif$` VALUES (36, 'AGFA', 'X 38', 'Vendu par 3', '8916702', 'MCA 740', 'TONER COPIEUR', NULL, 15); INSERT INTO `tarif$` VALUES (37, 'AGFA', 'X 410', 'Vendu par 2', 'CB 936', 'MCA 929', 'TONER COPIEUR', NULL, 36.13); INSERT INTO `tarif$` VALUES (38, 'AGFA', 'X 420', 'Vendu par 2', '117-0184', 'MCA 937', 'TONER COPIEUR', NULL, 35.77); INSERT INTO `tarif$` VALUES (39, 'AGFA', 'X 48', 'Vendu par 3', '889265 TYPE 310', 'MCA 921', 'TONER COPIEUR', NULL, 16.3); INSERT INTO `tarif$` VALUES (40, 'AGFA', 'X 520', 'Vendu par 2', '200410', 'MCA 937', 'TONER COPIEUR', NULL, 35.77); INSERT INTO `tarif$` VALUES (41, 'AGFA', 'X 55-3', 'Toner 1 x 1,5 Kg', 'CB 743', 'MCA 743', 'TONER COPIEUR', NULL, 64.28); INSERT INTO `tarif$` VALUES (42, 'AGFA', 'X 58', 'Toner 1 x 1,5 Kg', 'CB 743', 'MCA 743', 'TONER COPIEUR', NULL, 64.28); INSERT INTO `tarif$` VALUES (43, 'AGFA', 'X 6', 'Vendu par 2', 'CB 928', 'MCA 920', 'TONER COPIEUR', NULL, 7.67); INSERT INTO `tarif$` VALUES (44, 'AGFA', 'X 7', 'Vendu par 4', 'TYPE 501 B 8935504', 'MCA933', 'TONER COPIEUR', NULL, 5.92); INSERT INTO `tarif$` VALUES (45, 'AGFA', 'X 88', 'Toner 1 x 1,5 Kg', '5915003-BLK', 'MCA 743', 'TONER COPIEUR', NULL, 64.28); INSERT INTO `tarif$` VALUES (46, 'ALCATEL', '224', 'Ruban matricielle Vendu par 2, prix pour 2', 'F809360', 'BR466B', 'MATRICIELLE', NULL, 30.56); INSERT INTO `tarif$` VALUES (47, 'ALCATEL', '224', 'Ruban matricielle Vendu par 2, prix pour 2', 'G9943015', 'BR466C', 'MATRICIELLE', NULL, 42.62); INSERT INTO `tarif$` VALUES (48, 'ALCATEL', '3724', 'Film thermique 1 x 140 pages', 'TTR900', 'MDT8713', 'TTR', NULL, 7.62); INSERT INTO `tarif$` VALUES (49, 'ALCATEL', '3725', 'Film thermique 1 x 140 pages', 'TTR900', 'MDT8713', 'TTR', NULL, 7.62); INSERT INTO `tarif$` VALUES (50, 'ALCATEL', '3726', 'Film thermique 1 x 140 pages', 'TTR900', 'MDT8713', 'TTR', NULL, 7.62);
CODE :
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<?php
@$form1 = $_POST['cartouche'];
$_POST['cartouche'] = $form1;
$based = "localhost";
$admin = "root";
$password = "";
$bdd = "base";
$connect = mysql_connect($based,$admin,$password);
mysql_select_db($bdd, $connect) or die("Impossible de se connecter");
?>
<html>
<head>
</head>
<body>
<form name="form1" method="post" id="cartouches" type="SUBMIT">
  <div align="center">
    <select name="cartouche" >;
<?php
$base = 'SELECT DISTINCT Marques FROM tarif$';
$req = mysql_query($base) or die('Erreur SQL !'.$sql.''.mysql_error());
echo '<option selected="selected">'.$form1.'</option>';
while($data = mysql_fetch_array($req)){
echo '<option>'.$data['Marques'].'</option>';
}
echo '<input type="submit" value="ok">';
?>
    </select>	
  </div>
</form>
<?php
echo 'vous avez choisis '.$form1.'.'; //temporaire pour vérifier $form1
?>
</body>
</html>
Voila, en faite, ce que je recherche depuis hier matin, c'est comment enlever ce bouton OK pour entrer la valeur de la variable $form1.
Je voudrais que dés qu'on clique sur un choix, la valeur est tout de suite mis dans la variable, donc en quelque sorte, rafraichir la page.

J'ai cherché sur le script de cyrano mais je ne sais pas quesqu'il à mis pour que ça soit dynamique ^^...

Merci de vos réponse ;)
La culture, c'est comme la confiture, moins on en a, plus on l'étale.

Eléphanteau du PHP | 15 Messages

01 févr. 2007, 14:15

Ce ne serait pas le

Code : Tout sélectionner

<select name="region" id="region" onchange="document.forms['chgdept'].submit();">
??