Page 1 sur 1
Générateur de SELECT
Posté : 30 oct. 2007, 10:34
par ayntic
Bonjour !
Je réussi, grâce à ce script, à ajouter un champs (INPUT) supplémentaire à mon formulaire.
Mon objectif est maintenant d'arriver à ajouter un champs (SELECT) supplémentaire, sachant que ce champ doit récupérer des données dans une BD, chose que je n'y arrive d'alleurs pas à faire.
* entre <head> et </head>
Code : Tout sélectionner
<script>
function create_champ(i) {
var i2 = i + 1;
document.getElementById('leschamps_'+i).innerHTML = '<input type="text" name="fichier_'+i+'"></span>';
document.getElementById('leschamps_'+i).innerHTML += (i <= 10) ? '<br /><span id="leschamps_'+i2+'"><a href="javascript:create_champ('+i2+')">Ajouter un champs</a></span>' : '';
}
</script>
* entre <body> et </body>
Code : Tout sélectionner
<input type="text" name="fichier_1" /><br /><br /><span id="leschamps_2"><a href="javascript:create_champ(2)">Ajouter un champs</a></span>
Merci pour votre aide !!!
Posté : 30 oct. 2007, 10:43
par mcorgnet
<?php
mysql_connect(...);
if (isset($_POST['ajouter_champ'])) {
$ajouter = "insert into table (champs_select) values ('".$_POST['ajouter_champ']."';
mysql_query($ajouter);
}
$query = "SELECT id, champs_select FROM table;
$res = mysql_query($query);
?>
<select name="mon_select">
<?php
while ($row = mysql_fetch_row($res)) {
?><option value="<?php echo ($row[0]); // correspond à l'id ?>"><?php echo ($row[1]); // correspond au nom?></option>
}
?>
</select>
<h2>ajouter un champ</h2>
<form method ...>
<input type="text" name="ajouter_champs" value="" />
<input type="submit" value="ajouter" />
</form>
De tête, ça devrait ressembler à ça.
Posté : 30 oct. 2007, 11:37
par Ryle
Modération :
Afin d'obtenir plus de réponses, le sujet est déplacé dans le forum "Javascript, AJAX".
Générateur de SELECT
Posté : 30 oct. 2007, 11:48
par ayntic
Au fait, ça ne ressemble pas du tout à cela.
j'explique !!!
Je désire choisir, dans ma BD, des noms que j'appelle dans un champ SELECT.
Code : Tout sélectionner
CREATE TABLE `nom` (
`champ_nom` varchar(255) collate latin1_general_ci NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;
--
-- Contenu de la table `nom`
--
INSERT INTO `nom` (`champ_nom`) VALUES
('Nom1'),
('Nom2'),
('Nom3'),
('Nom4');
<script>
function create_champ(i) {
var i2 = i + 1;
document.getElementById('leschamps_'+i).innerHTML = '<select name="autnom_1" name="autnom_'+i+'"></span>';
document.getElementById('leschamps_'+i).innerHTML += (i <= 10) ? '<br /><span id="leschamps_'+i2+'"><a href="javascript:create_champ('+i2+')">Ajouter un champs</a></span>' : '';
}
</script>
<?php
mysql_connect(...);
echo '<select name="autnom_1"><option value="nul">[ Choisir ]</option>';
$select3 = mysql_query ("SELECT * FROM nom");
while ($tab3 = mysql_fetch_assoc($select3))
{
$nom = $tab3["nom"];
echo '<option value="'.$nom.'">'.$nom.'</option>';
}
echo '</select><br /><span id="leschamps_2"><a href="javascript:create_champ(2)">Ajouter un champs</a></span>';
?>
Le lien Ajouter un champs génère un nouveau champs SELECT. Seulement que je désire y afficher les noms présents dans la BD.
Posté : 30 oct. 2007, 12:11
par Berzemus
Si je te suis bien, ça doit être dynamique ? alors il faut passer par javascript/ajax.
C'est comme ça.
Un petit script qui va chercher les données sur un script php côté serveur, et qui les ajoute au select, c'est la marche à suivre.
Générateur de SELECT
Posté : 30 oct. 2007, 12:18
par ayntic
Mais STP, quel est se script ????
Posté : 30 oct. 2007, 12:29
par Ryle
Voici quelques infos sur Ajax, cela devrait te donner une petite idée

:
http://www.phpfrance.com/forums/viewtop ... 679#211679