Bonjour,
Je suis débutant en jquery et j'essaie de réaliser une admin.
A l'aide d'un formulaire je renseigne ma base de données et je souhaite également uploader des fichier c'est là ou les problèmes commencent.
L'insertion des données de mon formulaire se font bien sauf les données relatives à l'upload du fichier ce n'est pas un problème du nom de champ car quand je passe celui en champ text standard l'insertion dans la base de données mysql se fait.
Je vous joins mon code se sera plus explicite.
Pour info ce formulaire est dans un tab jquery
Le php avec le formulaire en question
Le php pour l'insertion mysql et upload
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 <form id="formSingles" action="newSinglesTest.php" method="post" enctype="multipart/form-data"> <table> <tr> <th>Selectionnez Votre Artiste:</th> <td><select name="artists" id="artists"> <option></option> <? $query01="SELECT * FROM artists ORDER BY art_name"; $result01=mysql_query($query01); while($val01=mysql_fetch_array($result01)) {?> <option id="id_art" value="<?echo $val01['art_id'];?>"><?echo $val01['art_name'];?></option> <? } ?> </select></td> </tr> <tr> <th>Entrez Votre Single:</th> <td><input type="text" name="single" value="" /></td> </tr> <tr> <th>Pochette Single</th> <td><input type="file" name="single_cover" size="50" /></td> </tr> <tr> <th>Année de Sortie</th> <td><input type="text" name="single_release_date" /></td> </tr> <tr> <th></th> <td><input class="submitButton" type="submit" value="Valider" /></td> </tr> </table> </form>
Pour finir le js
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 <?php include_once("connexion.php"); ?> <?php mysql_select_db($database, $base); $todayis = date("Y/m/d"); if(!empty($_POST['single'])){ $query_single = "INSERT INTO singles(single_id, single_name, single_art, single_cover, single_release_date, single_date_added, single_status) VALUES ('NULL', '".$_POST['single']."', '".$_POST['artists']."', '".$_FILES['single_cover']."', '".$_POST['single_release_date']."', '$todayis', '1' )"; $single = mysql_query($query_single, $base); $id = mysql_insert_id(); // Si il y a un fichier à mettre en ligne, on l'upload if(!empty($_FILES["single_cover"])) { // Creation d'un nouveau nom de fichier sous la forme "cover_XXX.jpg" $fichier = "cover_single_".$id.".jpg"; echo $fichier; // on recupere largeur/hauteur de l'image list($largeur, $hauteur, $type, $attr)=getimagesize($_FILES["single_cover"]["tmp_name"]); // on calcule le ratio pour savoir si elle est en portrait ou paysage $ratio = $largeur / $hauteur; // $monExtension = strtolower(strrchr($_FILES["album_cover"]["name"], '.')); $uploaddir = "/home/nats/admin_radio/radio/covers/"; $uploaddir2 = "/home/nats/admin_radio/radio/covers/resized/"; $uploadfile=$uploaddir.$fichier; $uploadfile2=$uploaddir2.$fichier; $src_img = imagecreatefromjpeg($_FILES["single_cover"]["tmp_name"]); // Exemple de resize en 50 de large maxi $new_w = 50; $new_h = 50/$ratio; $dst_img = imagecreatetruecolor($new_w, $new_h); imagecopyresized($dst_img,$src_img,0,0,0,0,$new_w,$new_h,imagesx($src_img),imagesy($src_img)); imagejpeg($dst_img,$uploadfile2,90); //Copy the file to some permanent location if (move_uploaded_file($_FILES["single_cover"]["tmp_name"], $uploadfile)) { echo "Cover Uploadee et Resizee"; $query01="UPDATE singles SET single_cover = '$fichier' WHERE single_id = '$id'"; $result01=mysql_query($query01, $base); } else { echo "Cover Non Uploadee"; } } if($single == true){ $query_single = sprintf("SELECT * FROM singles WHERE single_id = $id"); $single = mysql_query($query_single, $base) or die(mysql_error()); $row_single = mysql_fetch_assoc($single); $result = array(); do { $result[] = $row_single; } while ($row_single = mysql_fetch_object($single)); echo '{"single":'.json_encode($result).'}'; } } else{ echo json_encode("Veuillez Entrer Un Single"); } ?>
Ce que je ne comprends c'est que même quand je mets des <echo> tout bête dans mon php mon script se fige et il ne se passe rien tout comme quand je teste avec des try et catch pour voir ou ça bloque.
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 $(document).ready(function(){ addSingle.init(); }); var addSingle = { $submitSingle : null, $formSingles : null, $singleResponse : null, $modifySingleLink : null, $deleteSingleLink : null, $modifySingleBloc : null, $formSingleModify : null, $modifySingleConfirmation : null, $formSingleDelete : null, $deleteSingleConfirmation : null, init : function(){ $("#tabs").tabs(); this.initSingleManager(); }, initSingleManager : function(){ this.$formSingles = $("form#formSingles"); this.$submitSingle = this.$formSingles.find("input.submitButton"); this.$singleResponse = $("#singleResponse"); this.$modifySingleLink = $("#modifySingle"); this.$deleteSingleLink = $("#deleteSingle"); this.$modifySingleBloc = $("#modifySingleBloc"); this.$deleteSingleBloc = $("#deleteSingleBloc"); this.$formSingleModify = $("form#formSingleModify"); this.$formSingleDelete = $("form#formSingleDelete"); this.$modifySingleConfirmation = this.$singleResponse.find(".modifySingleConfirmation"); this.$deleteSingleConfirmation = this.$singleResponse.find(".deleteSingleConfirmation"); this.$submitSingle.click(function(event){ event.preventDefault(); addSingle.$singleResponse.hide(); addSingle.$modifySingleConfirmation.hide(); addSingle.$formSingleDelete.hide(); addSingle.$deleteSingleConfirmation.hide(); ajaxRequest(addSingle.$formSingles, "addSingle.handleSinglesResponse(response)"); }); this.$modifySingleLink.click(function(event){ event.preventDefault(); addSingle.$modifySingleConfirmation.hide(); addSingle.$deleteSingleBloc.hide(); addSingle.$formSingleModify.show(); addSingle.$modifySingleBloc.show(); }); this.$deleteSingleLink.click(function(event){ event.preventDefault(); addSingle.$modifySingleBloc.hide(); addSingle.$deleteSingleBloc.show(); addSingle.$formSingleDelete.show(); }); this.$deleteSingleBloc.find(".submitButton").click(function(event){ event.preventDefault(); addSingle.$modifySingleBloc.hide(); ajaxRequest(addSingle.$formSingleDelete, "addSingle.handleSinglesDeleteResponse(response)"); }); this.$modifySingleBloc.find(".submitButton").click(function(event){ event.preventDefault(); ajaxRequest(addSingle.$formSingleModify, "addSingle.handleSinglesModifyResponse(response)"); }); this.$modifySingleBloc.find(".cancelButton").click(function(event){ event.preventDefault(); addSingle.$modifySingleBloc.hide(); }); this.$deleteSingleBloc.find(".cancelButton").click(function(event){ event.preventDefault(); addSingle.$deleteSingleBloc.hide(); }); }, handleSinglesResponse : function(json){ var datas = json.single[0]; this.$singleResponse.find(".insertedSingleName, .deletedSingleName").text(datas.single_name); this.$singleResponse.find(".insertedSingleCover, .deletedSingleCover").data(datas.single_cover); this.$singleResponse.find(".insertedSingleId, .deletedSingleId").text(datas.single_id); this.$singleResponse.find(".singleModifyField").val(datas.single_name); this.$singleResponse.find(".singleIdField").val(datas.single_id); $("#introSingle").show(); this.$singleResponse.show(); }, handleSinglesModifyResponse : function(json){ var datas = json.single[0]; this.$singleResponse.find(".modifiedSingleName, .deletedSingleName").text(datas.single_name); this.$singleResponse.find(".modifiedSingleId").text(datas.single_id); this.$formSingleModify.hide(); this.$modifySingleConfirmation.show(); }, handleSinglesDeleteResponse : function(json){ this.$formSingleDelete.hide(); this.$deleteSingleConfirmation.show(); $("#introSingle").hide(); } } function ajaxRequest(formObj, callback){ $.ajax({ type: "POST", url: formObj.attr('action'), data: formObj.serialize(), dataType : "json", success: function(response){ eval(callback); } }); }
Pour finir je voulais également faire afficher veuillez entrer un single(cf le php d'insertion) si je valide mon formulaire à vide et il ne passe rien ce qui reprend mon problème au niveau des echo.
J'espère avoir été assez clair, veuillez m'excuser je suis débutant et vous remercie d'avance.
Je suis à votre disposition pour toutes autres infos.
Cordialement,
Nkordiko
Partager