Page 1 sur 1

Liste Déroulante

Posté : 15 nov. 2005, 23:09
par beansoldier
je souhaiterais crée une liste déroulante dans un champ d'enregistrement mais que les données de cette liste déroulante soit ecrite par moi même dans le script

Merci d'avance !

Posté : 15 nov. 2005, 23:11
par Cyrano
Ha... c'est intéressant... et ? :-k

Posté : 15 nov. 2005, 23:13
par mario
Très bon projet :roll: je n'y avais pas pensé....euhh pardon.
Dit nous ce qui t'empêche de le faire ?

Posté : 15 nov. 2005, 23:16
par beansoldier
Arf ouai scuse en fait je cherche le code php pour pouvoir afficher une liste déroulante

exemple : je souhaite enregistrer un element sur une table mysql. J'ai la page avec tous les champs ou je rentre les données. Mais je souhaiterai que certains champs ait une liste déroulante avec des choix prédéfini par mois meme.

Je recherche un tutorial pour crée le code ou une aide :D

Posté : 15 nov. 2005, 23:23
par Cyrano
Construire la liste à partir de quoi au juste ? Des données extraites de la base de données ? Tu pars de où au juste ? As-tu un bout de code même si tu sais qu'il ne fonctionne pas ? Ça nous donnera un point de départ.

Posté : 15 nov. 2005, 23:27
par mario
Si la source de donnée est une table MySQL:
<?php

$sql = "SELECT id, champ FROM table ORDER BY champ"; // à personnaliser
$req = mysql_query($req) or die(mysql_error());

echo "<form>
<select name='nomliste'>"; // je ne m'attarde pas sur le formulaire html
echo "<option value=' '>---CHOIX---</option>"; 
while($row = mysql_fetch_assoc($req)){
   echo "<option value='".$row['id']."'>".$row['champ']."</option>/r/n";
}
echo "</select>"; // je ne m'attarde pas sur le formulaire html
?>
Je te laisse un peu d'imagination pour que ton choix soit prédéfini

Posté : 15 nov. 2005, 23:36
par beansoldier
J'ai crée ma base sur phpmyadmin

Afin d'enregistrer les données jutilise ce code
<?php 
// On commence par récupérer les champs 
$Nom_US = isset($_POST['Nom_US']) ? $_POST['Nom_US'] : ''; 
$Nom_FR = isset($_POST['Nom_FR']) ? $_POST['Nom_FR'] : ''; 
$Nom_DE = isset($_POST['Nom_DE']) ? $_POST['Nom_DE'] : ''; 
$Nom_IT = isset($_POST['Nom_IT']) ? $_POST['Nom_IT'] : ''; 
$Type_Carte_US = isset($_POST['Type_Carte_US']) ? $_POST['Type_Carte_US'] : ''; 
$Type_Carte_FR = isset($_POST['Type_Carte_FR']) ? $_POST['Type_Carte_FR'] : ''; 
$Type_Carte_DE = isset($_POST['Type_Carte_DE']) ? $_POST['Type_Carte_DE'] : ''; 
$Type_Carte_IT = isset($_POST['Type_Carte_IT']) ? $_POST['Type_Carte_IT'] : ''; 
$Type_US = isset($_POST['Type_US']) ? $_POST['Type_US'] : ''; 
$Type_FR = isset($_POST['Type_FR']) ? $_POST['Type_FR'] : ''; 
$Type_DE = isset($_POST['Type_DE']) ? $_POST['Type_DE'] : ''; 
$Type_IT = isset($_POST['Type_IT']) ? $_POST['Type_IT'] : ''; 
$Attribut_US = isset($_POST['Attribut_US']) ? $_POST['Attribut_US'] : ''; 
$Attribut_FR = isset($_POST['Attribut_FR']) ? $_POST['Attribut_FR'] : ''; 
$Attribut_DE = isset($_POST['Attribut_DE']) ? $_POST['Attribut_DE'] : ''; 
$Attribut_IT = isset($_POST['Attribut_IT']) ? $_POST['Attribut_IT'] : ''; 
$Etoiles = isset($_POST['Etoiles']) ? $_POST['Etoiles'] : ''; 
$ATK = isset($_POST['ATK']) ? $_POST['ATK'] : ''; 
$DEF = isset($_POST['DEF']) ? $_POST['DEF'] : ''; 
$Effet_US = isset($_POST['Effet_US']) ? $_POST['Effet_US'] : ''; 
$Effet_FR = isset($_POST['Effet_FR']) ? $_POST['Effet_FR'] : ''; 
$Effet_DE = isset($_POST['Effet_DE']) ? $_POST['Effet_DE'] : ''; 
$Effet_IT = isset($_POST['Effet_IT']) ? $_POST['Effet_IT'] : ''; 
$Limitation_US = isset($_POST['Limitation_US']) ? $_POST['Limitation_US'] : ''; 
$Limitation_JAP = isset($_POST['Limitation_JAP']) ? $_POST['Limitation_JAP'] : ''; 
$Rulings_US = isset($_POST['Rulings_US']) ? $_POST['Rulings_US'] : ''; 
$Rulings_FR = isset($_POST['Rulings_FR']) ? $_POST['Rulings_FR'] : ''; 


// On vérifie si les champs sont vides 
if(empty($Nom_US) OR empty($Type_Carte_US) OR empty($Type_US) OR empty($Attribut_US) OR empty($Etoiles) OR empty($ATK) OR empty($DEF) OR empty($Limitation_US) OR empty($Limitation_JAP) OR empty($Limitation_US)) 
{ 
echo '<font color="red">Mauvaise entrée</font>'; 
} 

// Aucun champ n'est vide, on peut enregistrer dans la table 
else 
{ 
// connexion à la base 
$db = mysql_connect('sql.free.fr', '********', '*********') or die('Erreur de connexion '.mysql_error()); 
// sélection de la base 

mysql_select_db('Cartes',$db) or die('Erreur de selection '.mysql_error());

// on écrit la requête sql 
$sql = "INSERT INTO Cartes(Nom_US, Nom_FR, Nom_DE, Nom_IT, Type_Carte_US, Type_Carte_FR, Type_Carte_DE, Type_Carte_IT, Type_US, Type_FR, Type_DE, Type_IT, Attribut_US, Attribut_FR, Attribut_DE, Attribut_IT, Etoiles, ATK, DEF, Effet_US, Effet_FR, Effet_DE, Effet_IT, Limitation_US, Limitation_JAP, Rulings_US, Rulings_FR) VALUES('". $Nom_US ."', '". $Nom_FR ."', '". $Nom_DE ."', '". $Nom_IT ."', '". $Type_Carte_US ."', '". $Type_Carte_FR ."', '". $Type_Carte_DE ."', '". $Type_Carte_IT ."', '". $Type_US ."', '". $Type_FR ."', '". $Type_DE ."', '". $Type_IT ."', '". $Attribut_US ."', '". $Attribut_FR ."', '". $Attribut_DE ."', '". $Attribut_IT ."', '". $Etoiles ."', '". $ATK ."', '". $DEF ."', '". $Effet_US ."', '". $Effet_FR ."', '". $Effet_DE ."', '". $Effet_IT ."', '". $Limitation_US ."', '". $Limitation_JAP ."', '". $Rulings_US ."', '". $Rulings_FR ."')";

// on insère les informations du formulaire dans la table 
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error()); 

// on affiche le résultat pour le visiteur 
echo '<center><b><u>Carte Crée !</b></u></center>'; 

mysql_close(); // on ferme la connexion 
} 
?>
donc celui la genre l'enregistrement crée sur une autre page. Sur l'autre page j'ai par exemple l'entrer de la donnée "Etoiles" qui est egal a un chiffre entre 1 et 12
<input type="text" name="Etoiles" size="10" value="" maxlength="">&nbsp;&nbsp;&nbsp;
Maintenant à la place qu'il m'affiche une case vide a remplir moi meme, j'aimerai qu'un menu deroulant soit là avec possibilité de choisir un chiffre entre 1 et 12 pour plus de faciliter.

Je demande pas le code tout, juste peut etre un lient vers un endroit qui explique comment crée une liste deroulante

--------------------------------------------------

marco> le 2nd code que je donne me permet d'entrer la valeur de ce champ a enregistrer (la page fonctionne bien !) mais ce que je souhaite c'est qu'a la place de ce champ ou je tappe la donnée, une liste déroulante s'affiche avec genre un chiffre en 1 et 12 comme ds l'exemple

C'est tout ^^

Merci

Posté : 16 nov. 2005, 00:18
par Truc
Salut,

si j'ai bien vu il y a les codes d'accès dans le mysql_connect, à EDITER

sinon, tu veut une simple liste qui va de 1 a 12 ??? il faut que ce soit variable en fonction de d'un cahmp ?

en attendant, voila une liste :D
<select name="liste" >
<?
for($i=1;$i<=12;$i++)
{
    echo '<option value='.$i.'>'.$i.'</option>';
}
</select>

Posté : 16 nov. 2005, 00:20
par Cyrano
si j'ai bien vu il y a les codes d'accès dans le mysql_connect, à EDITER
Corrigé, merci pour lui ;)

Posté : 16 nov. 2005, 17:21
par beansoldier
:shock: Merci beaucoup putain fo que je fasse gaffe :)

Merci pour l'aide, j'ai réussi !

Autre question :

je cherche la methode (code, etc.) pour ce soucis : Quand j'enregistre une ligne sur la BDD MYSQL je souhaiterai que cet enregistrement crée automatique une page pour cet élément enregistrer suivant un modèle prédéfini

Si vous comprenez et si vous avez un tutorial, ca me serait utile

exemple :

Dans la base Voitures, je souhaite entrer le vehicule 206 avec toutes ses caractéristiques. Mais afin que cela ce rende plus sympatique, je souhaite qu'il me crée une page de présentation de la 206 enter automatiquement. De plus, lorsque j'entre sur mon site et que je vois la table voitures, quand il affiche 206 je souhaite pouvoir cliquer dessus et arriver a cette page crée par lui même.

En clair j'enregistre la 206, et il crée automatiquement une page 206 selon un modèle de page fait par moi même. De plus, ds l'affichage des données de la table Voitures, je peut acceder automatique a la page 206 rien qu'en cliquant sur l'element 206

Merci à ceux qui ont compris de bien vouloir me donner un tuto ou une bribe d'idée afin que je puisse le faire :shock:

Posté : 16 nov. 2005, 21:40
par Cyrano
Ça s'appelle des templates. Si tu débutes en PHP, tu risques de trouver ça un peu ardu parce que c'est de la programmation orientée objet et on utilise une (des) classe(s): le moteur de templates.

L'idée, c'est que tu as une mise en page prête et seul le contenu change, contenu alimenté à partir de la base de données, dynamiquement en PHP.

Posté : 16 nov. 2005, 22:15
par Invité
as tu un lien vers un tutorial ou une explications afin que je m'y mette :p ?

Posté : 16 nov. 2005, 22:28
par beansoldier
as tu un lien vers un tutorial ou une explications afin que je m'y mette :p ?
c'est moi qui ait écrit ms bon j'avais zoublié de me connecter :p

Posté : 16 nov. 2005, 23:06
par Cyrano
J'aurai ceci

Posté : 17 nov. 2005, 23:00
par beansoldier
Merci !

Autre question : Je souhaiterais créer une page qui me permet de modifier n'importe quel enregistrement de ma table sql, auriez vous un tutorial ?

Pour ma question précédente, je souhaiterais faire ds ce style la c'est à dire :

http://www.kingyugi.org/index.php?page= ... st&ext=DCR

En clair, j'ai ma liste d'enregistrement et une page est affecté automatique ment à chaque enregistrement dès son enter ds la base !

Faut il utiliser les Templates ou bien ?