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