Recuperer des variables avec nom dynamiques
Résolu
diice
Messages postés
142
Statut
Membre
-
diice Messages postés 142 Statut Membre -
diice Messages postés 142 Statut Membre -
Bonjour,
voilà mon probleme :
J'ai une table MySql "travaux" avec differents champs (titres, url, date...)
a ces "travaux",je souhaite y lier plusieurs photos, mais sans nombre determiné.
J'ai donc creér un table "images" (id_travaux, titre, fichier...)
donc dans mon formulaire d'ajout de nouveaux travaux, je laisse la possibilité d'ajouter autant de "images" que l'utilisateur le souhaite. Je laisse la possibilité d'ajouter des champs supplementaires via javascript.
(j'ai utilisé le code de l'editeur-du-javascript suivant: http://www.editeurjavascript.com/scripts/scripts_formulaires_3_653.php).
donc mon javascript me creé 3 champs supplémentaires a chaque fois que l'utilisateur appuis sur "ajouter une page".
le nom des champs est :
- titre_1
- num_page_1
- fichier_1
si on ajoute une deuxieme photo ca sera :
- titre_2
- num_page_2
- fichier_2
etc.... (maximum 10)
bref, jusque la, ca va...
le probleme c'est quand je veux inserer tout ca en base de donnée (dans ma table "images") la je bloque.
Je vois bien un petit array() mais je n'arrive pas a savoir combien de "photos" sous ajoutées.
je suis obligé de faire des conditions sur un ajout potentiel de 10 photos, ce qui ne m'arrange pas du tout !!!
comment pourrais-je faire pour ajouter dans un tableau mes "images" ???
merci beaucoup d'avance !
voilà mon probleme :
J'ai une table MySql "travaux" avec differents champs (titres, url, date...)
a ces "travaux",je souhaite y lier plusieurs photos, mais sans nombre determiné.
J'ai donc creér un table "images" (id_travaux, titre, fichier...)
donc dans mon formulaire d'ajout de nouveaux travaux, je laisse la possibilité d'ajouter autant de "images" que l'utilisateur le souhaite. Je laisse la possibilité d'ajouter des champs supplementaires via javascript.
(j'ai utilisé le code de l'editeur-du-javascript suivant: http://www.editeurjavascript.com/scripts/scripts_formulaires_3_653.php).
donc mon javascript me creé 3 champs supplémentaires a chaque fois que l'utilisateur appuis sur "ajouter une page".
le nom des champs est :
- titre_1
- num_page_1
- fichier_1
si on ajoute une deuxieme photo ca sera :
- titre_2
- num_page_2
- fichier_2
etc.... (maximum 10)
bref, jusque la, ca va...
le probleme c'est quand je veux inserer tout ca en base de donnée (dans ma table "images") la je bloque.
Je vois bien un petit array() mais je n'arrive pas a savoir combien de "photos" sous ajoutées.
je suis obligé de faire des conditions sur un ajout potentiel de 10 photos, ce qui ne m'arrange pas du tout !!!
comment pourrais-je faire pour ajouter dans un tableau mes "images" ???
merci beaucoup d'avance !
A voir également:
- Recuperer des variables avec nom dynamiques
- Recuperer message whatsapp supprimé - Guide
- Récupérer mon compte facebook désactivé - Guide
- Comment recuperer une video sur youtube - Guide
- Le nom du champ de tableau croisé dynamique n'est pas valide ✓ - Forum Excel
- Nom de l'adresse - Forum Réseaux sociaux
7 réponses
Salut,
Je te propose d'utiliser les fonctions du Document Object Model.
Le principe est de recenser toutes les balises de type input. Ensuite de tester le début du nom de la balise. Si le nom est égal à "titre_", alors tu incrémentes un compteur. A la fin tu sais combien d'élements ont été créés.
function CompteElt()
{
var compteur = 0;
//Cree un tableau des input
var tablo = document.getElementsByTagName("INPUT");
//Parcours le tableau et teste le nom des champs
for(c=0;c<tablo.length-1;c++)
{
if(tablo[c].name.substring(0,6)=='titre_')
{
compteur ++;
}
}
return compteur;
}
Tu peux selon le même principe si tu veux enregistrer les informations de chaque champ qui t'intéresse dans un tableau à 3 dimensions.
En espérant que cela t'aidera,
A +
IC
Je te propose d'utiliser les fonctions du Document Object Model.
Le principe est de recenser toutes les balises de type input. Ensuite de tester le début du nom de la balise. Si le nom est égal à "titre_", alors tu incrémentes un compteur. A la fin tu sais combien d'élements ont été créés.
function CompteElt()
{
var compteur = 0;
//Cree un tableau des input
var tablo = document.getElementsByTagName("INPUT");
//Parcours le tableau et teste le nom des champs
for(c=0;c<tablo.length-1;c++)
{
if(tablo[c].name.substring(0,6)=='titre_')
{
compteur ++;
}
}
return compteur;
}
Tu peux selon le même principe si tu veux enregistrer les informations de chaque champ qui t'intéresse dans un tableau à 3 dimensions.
En espérant que cela t'aidera,
A +
IC
merci beaucoup !
effectivement , je pense que ca devrait bien m'aider !
j'essaye ca et je te dit au jus !
merci beaucoup !
effectivement , je pense que ca devrait bien m'aider !
j'essaye ca et je te dit au jus !
merci beaucoup !
Re.
Je viens de penser que tu sera qd même embetté pour l'insertion dans ta base de données. Pourquoi ne pas utiliser le tableau POST plutot dans la mesure où lui enregistre tous les champs transmis ? A ce moment là, tu fais une boucle de parcours du tableau POST, tu testes le nom de chaque clé toujours sur le même principe et ensuite si concordance, tu stockes dans une variable ou un tableau et après tu insères dans ta base.
En quel langage développes tu cote serveur ? PHP ?
A+
IC
Je viens de penser que tu sera qd même embetté pour l'insertion dans ta base de données. Pourquoi ne pas utiliser le tableau POST plutot dans la mesure où lui enregistre tous les champs transmis ? A ce moment là, tu fais une boucle de parcours du tableau POST, tu testes le nom de chaque clé toujours sur le même principe et ensuite si concordance, tu stockes dans une variable ou un tableau et après tu insères dans ta base.
En quel langage développes tu cote serveur ? PHP ?
A+
IC
effectivement, j'ai quelques soucis, je suis en train de faire des recherches sur les DOM !
parce que du coup je sais pas comment reprendre le tableau du javascript (je suis une grosse bille en javascript !)
sinon je développe en php.
mais effectivement avec le post, j'ai toutes mes variables sans probleme, et c'est la qu'interviendrai ton code DOM, mais du coup je sais pas comment l'extraire du javascript...
parce que du coup je sais pas comment reprendre le tableau du javascript (je suis une grosse bille en javascript !)
sinon je développe en php.
mais effectivement avec le post, j'ai toutes mes variables sans probleme, et c'est la qu'interviendrai ton code DOM, mais du coup je sais pas comment l'extraire du javascript...
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
bon, j'ai trouvé une autre solution :
voilà pour ceux qui chercheraient !
je sais pas sile code est juste, mais ca marche !
// renommer les variables POST
$titres_page = $_POST['titres_page'];
$num_page = $_POST['num_page'];
$fichier = $_POST['fichier'];
// nombre de Post "Titre" ramenés
$num_titre=sizeof($titres_page);
// boulce pour passage en BDD suivant le nombre de POST Titres
for ($i=0;$i<$num_titre;$i++) {
// verification que l'entree id_taf + num_page n'est pas deja dans la table
.... {
// Si nouvelle entree unique alors, insere dans BDD
$req_insert="insert into $medias values('','$id_taf','$num_page[$i]','$titres_page[$i]','$fichier[$i]')";
$resultat = mysql_db_query("$base",$req_insert,$link) or die('Erreur SQL !<br>'.$req_insert.'<br>'.mysql_error());
//confirmation visuelle
echo "<br>fichier <b>".$fichier[$i]."</b> inséré";
}
else { echo "fichier $fichier[$i] deja present dans la table"; }
}
voilà pour ceux qui chercheraient !
je sais pas sile code est juste, mais ca marche !
Salut.
Je pensais en effet à une méthode genre celle que tu as adopté. Le DOM se situe en effet côté client. C pratique pour manipuler en javascript les éléments d'une page mais pas pour faire le traitement comme tu le souhaites. Je crois qu'il existe des fonctions DOM pour PHP mais plutot axé sur des documents XLM afin d'en analyser le contenu. Mais cela veut dire en fait que tu travailles sur un fichier enregistré que tu ouvres en PHP.
Bonne continuation.
IC
Je pensais en effet à une méthode genre celle que tu as adopté. Le DOM se situe en effet côté client. C pratique pour manipuler en javascript les éléments d'une page mais pas pour faire le traitement comme tu le souhaites. Je crois qu'il existe des fonctions DOM pour PHP mais plutot axé sur des documents XLM afin d'en analyser le contenu. Mais cela veut dire en fait que tu travailles sur un fichier enregistré que tu ouvres en PHP.
Bonne continuation.
IC