Bonjour à tous,
Je suis actuellement en stage de fin de formation, etvoilà 2 jours que je bloque sur un problème.
Je réalise une interface web pour postuler en ligne à 1 ou plusieurs postes.
Dans un premier temps, l'utilisateur remplis un formulaire avec ses infos perso et sélectionne (par checkbox) le ou les postes qu'il souhaite.
Après validation de ce 1er formulaire les infos sont enregistrés dans la BDD sur 2 tables : candidat et candidat_poste (boucle foreach avec récupération des valeurs []).
On arrive donc à un 2ème formulaire qui affiche le ou les postes choisis avec à côté une zone upload pour joindre une lettre de motivation (différente selon les postes)et une zone upload pour 1 cv (car il est commun à tout).
Je veux donc faire un update de la table candidat_poste qui contient le nom des pieces jointes lettre de motivation.
voici le code de ma 1ère page ou je fais l'insertion de départ :
....je passe le début ...
2ème page ou j'envoi mes variables upload pour les updates :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76 //INSERT candidat_poste //récupération de l'id candidat (dernier enregistrement) $idCandidat=mysql_insert_id(); //boucle avec les valeurs sélectionnées en checkbox foreach($_POST['poste'] AS $checkposte) { $query2 = "INSERT INTO candidat_poste (idCandidat, idPost) VALUES ('$idCandidat','$checkposte')"; // Envoi de la requête mysql_query($query2) or die(mysql_error()); } if($query2) { echo '<h1><a>Formulaire de Candidature</a></h1> <form id="formCandidat" name="formCandidat" class="formCandidat" onSubmit="return verif_form(); return resultat;" method="post" action="pages_php/cv-motiv.php" enctype="multipart/form-data"> <div class="form_description"> <h3>JOINDRE votre C.V et LETTRE DE MOTIVATION</h3> <p>Merci de bien vouloir joindre les documents nécessaires à l\'élaboration de votre dossier de candidature</p> </div> <h2><i> ETAPE 1</i> -<b style="background-color:#EE7F00;color:#fefefe">-» ETAPE 2</b> </h2> <hr>'; echo 'Vous avez choisis de postuler aux postes suivants :</br></br>'; //Création de la requête SQL $queryPost = "SELECT * FROM candidat_poste join poste ON candidat_poste.idpost=poste.idpost where idCandidat=$idCandidat"; //Exécution de la requête $resultPost = mysql_query($queryPost) or die('Echec ligne : ' . __LINE__ . '<br /> Avec la requete : ' . $queryPost . '<br /> Et la réponse : ' . mysql_error()); echo '<table width="80%"><tr>'; echo '<th>Indiquez votre</br>ordre de preference</th>'; echo '<th>Poste(s)</th>'; echo '<th>lettre(s) de motivation</th>'; echo '</tr>'; while ($line = mysql_fetch_assoc($resultPost)){ echo "<tr><td><input type='checkbox' name='idpost[]' id='idpost[]' value='". $line['idpost'] ."' checked='true'>"; echo "<input type='hidden' name='idCandidat' value='". $line['idCandidat'] ."'>"; echo "<input type='text' name='rang[]' id='rang[]' value='' size='1'></td><td>"; echo $line['nomPoste']; echo '</td><td><input name="file_motiv" multiple="true" type="file">'; echo '</td></tr>'; $i++; } echo '<tr><td colspan="3"><hr> </br><b>joindre votre C.V : </b> <input name="file_cv" type="file"></tr></td>'; echo '<tr><td colspan="3"></br><input type="submit" name="submit" value="joindre ces documents et valider ma candidature" />'; echo '</form>'; echo '</td></tr></table>'; } else { echo("L'envoi de votre candidature a échoué") ; } } ?>
Seulement à chaque fois ça update avec le nom de la dernière pièce jointe....
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154 <?php //DEFINITION DES VARIABLES //-------------------------------------- $max_size = 1000000; // Taille max en octets du fichier $nom_cv = $_FILES['file_cv']['name']; $nom_motiv = $_FILES['file_motiv']['name']; $extension = substr(strrchr($nom_cv, "."), 0); // Récupération de l'extension $extension = substr(strrchr($nom_motiv, "."), 0);// Récupération de l'extension //$newname =($rename.$ext); $extensions_ok = array(".jpg",".png",".jpeg",".bmp",".doc",".docx",".pdf"); // On vérifie si le champ est rempli //1 if if(($_FILES['file_cv']['name'])& ($_FILES['file_motiv']['name'])) { // On vérifie l'extension du fichier //2 if if(in_array(strtolower($extension),$extensions_ok)) { // On récupère les dimensions du fichier $infos_img = getimagesize($_FILES['file_cv']['tmp_name']); $infos_image = getimagesize($_FILES['file_motiv']['tmp_name']); // On vérifie la taille du fichier if(($infos_img[2] <= $max_size)) { // Connexion au serveur MySQL et selection de la base "ma_base" include 'config/connect_insert.php'; mysql_query("SET NAMES 'utf8'"); //règle les pbs d'insertion avec accents //chemin voudra dire le chemin de deplacement de l'image (votre repertoire img que vous aurez creer bien sur $chemin_cv = "pj_cv/"; $chemin_motiv = "pj_motiv/"; $table = "candidat_poste"; $pj_cv = $nom_cv; $pj_motiv = $nom_motiv; $rang = $_POST["rang"]; //$idpost = $_POST["idpost"]; $idCandidat = $_POST["idCandidat"]; //on envoi le fichier dans le dossier voulu move_uploaded_file($_FILES["file_cv"]["tmp_name"],$chemin_cv); move_uploaded_file($_FILES["file_motiv"]["tmp_name"],$chemin_motiv); foreach ($_POST['idpost'] AS $checkpost) { foreach ( $_POST['rang'] AS $pref) { //INSERT Candidat_poste $query = "UPDATE candidat_poste SET rang = '$pref', pj_motiv = '$pj_motiv' WHERE idpost= '$checkpost' and idCandidat = '$idCandidat' "; // Envoi de la requête mysql_query($query) or die(mysql_error()); } } //affichage des résultats, pour savoir si la modification a marchée: if($query) { echo("<br><hr>insertion effectuée <br><br>") ; $query2 = "UPDATE candidat SET pj_cv = '$pj_cv' WHERE id_candidat = '$idCandidat' "; // Envoi de la requête mysql_query($query2) or die(mysql_error()); } if($query2) { echo "envoi terminé $nom_cv <br>"; echo "envoi terminé $nom_motiv"; } } //3else else { echo "vérifie les dimensions et taille image"; } } //2 else else { echo "non extension"; } } //1 else else { echo "Certains champs ne sont pas remplis !"; } ?>
Et là je ne vois plus comment faire...
Bon mon code n'est pas super je sais, mais j'essaie de m'améliorer....
Merci d'avance pour votre aide, car la je craque.....
Partager