Houlà je suis vraiment à côté de mes pompes, va falloir faire un break :
execute() renvoie un bool d'où l'erreur : pour ne rien arranger, je tape sur notepad++ bref, pas super simple
Voici le bon bout de code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 # LISTE DES VILLES $sql = 'SELECT * FROM villes;'; $stmt = $pdo->prepare($sql); $villes = ($stmt->execute()) ? $stmt->fetchAll(PDO::FETCH_ASSOC) : array(); # LISTE DES DEALS POUR LE CARROUSEL $sql = 'SELECT * FROM deals;'; $stmt = $pdo->prepare($sql); $deals = ($stmt->execute()) ? $stmt->fetchAll(PDO::FETCH_ASSOC) : array(); # LISTE DES CATEGORIES $sql = 'SELECT * FROM categ;'; $stmt = $pdo->prepare($sql); $categs = ($stmt->execute()) ? $stmt->fetchAll(PDO::FETCH_ASSOC) : array();
- PDO++ : Une nouvelle façon d'utiliser PDO. Billet de blog || Code source
- PhpEcho : Un moteur de rendu en une seule classe ! Nouvelle version (release 2.3.2) publiée le 18/04/2020 : Billet de blog || Code source
ah merci, mais j'avais réussi avec le code suivant également :
Cependant j'ai l'impression la ligne suivante ne marche pas sans fonctionne pas si je la laisse tel quel et je n'arrive pas à récupérer les 2 variables :
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 # LISTE DES VILLES $sql = 'SELECT * FROM villes'; $results = $pdo->query($sql); $villes = $results->fetchAll(PDO::FETCH_ASSOC); # LISTE DES DEALS POUR LE CARROUSEL $sql = 'SELECT * FROM deals'; $results = $pdo->query($sql); $deals = $results->fetchAll(PDO::FETCH_ASSOC); # LISTE DES CATEGORIES $sql = 'SELECT * FROM categ'; $results = $pdo->query($sql); $categs = $results->fetchAll(PDO::FETCH_ASSOC);car si je test avec :
Code : Sélectionner tout - Visualiser dans une fenêtre à part data: "idville="+idVille+"idcateg="+idCateg,J'ai bien mon fond d'écran qui change et mon carrousel qui se met à jours en fonction de la ville seulement.
Code : Sélectionner tout - Visualiser dans une fenêtre à part data: "idville="+idVille",
EUREKA j'ai trouvé voila la bonne syntaxe :
Et tout marche comme sur des roulettes!!!
Code : Sélectionner tout - Visualiser dans une fenêtre à part data: "idville="+idVille+"&idcateg="+idCateg,
Encore un enorme meci à vous et malheureusement nous n'aurons pas atteint les 200 messages
Quoi qu'il en soit je vous en suis vraiment très très reconnaissant pour cette aide que vous m'avez apporté sans quoi je patinerais encore bien que j'ai encore de très gros progrès à faire.
Bonne nuit à vous et très bon we!
Voila mon cde source :
comme vous pouvez le constater la fonction suivante est en commentaire :
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
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226 <?php function random_str($nbr) { $base = str_split('abcdefghijklmnpqrstuvwxyz0123456789'); return implode(NULL, array_rand(array_flip($base), $nbr)); } $server = 'localhost'; $dbName = 'projet_isep'; $user = 'root'; $pwd = ''; try { $pdo = new PDO("mysql:host=$server;dbname=$dbName", $user, $pwd, array(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION)); # LISTE DES VILLES $sql = 'SELECT * FROM villes'; $results = $pdo->query($sql); $villes = $results->fetchAll(PDO::FETCH_ASSOC); # LISTE DES DEALS POUR LE CARROUSEL $sql = 'SELECT * FROM deals'; $results = $pdo->query($sql); $deals = $results->fetchAll(PDO::FETCH_ASSOC); # LISTE DES CATEGORIES $sql = 'SELECT * FROM categ'; $results = $pdo->query($sql); $categs = $results->fetchAll(PDO::FETCH_ASSOC); if(isset($_POST['nom'])) { $sql = 'INSERT INTO coupons(nombeneficiaire, prenombeneficiare, iddeal,dateexpiration, datecreation, codecoupon, idpresta) ' . 'VALUES(:nombeneficiaire, :prenombeneficiare, :iddeal, :dateexpiration, NOW(), :codecoupon, :idpresta);'; $stmt = $pdo->prepare($sql); $stmt->bindParam(':nombeneficiaire', $_POST['nom'], PDO::PARAM_STR); $stmt->bindParam(':prenombeneficiare', $_POST['prenom'],PDO::PARAM_STR); $stmt->bindParam(':iddeal', $_POST['idcoupon'], PDO::PARAM_INT); $stmt->bindParam(':dateexpiration', $_POST['findeal'], PDO::PARAM_STR); $stmt->bindParam(':codecoupon', random_str(6), PDO::PARAM_STR); $stmt->bindParam(':idpresta', $_POST['presta'], PDO::PARAM_INT); $stmt->execute(); $idCoupon = $_POST['idcoupon']; if (ctype_digit("$idCoupon")) { $sql = 'UPDATE deals SET nbacheteur= :nbacheteur WHERE id = :idCoupon;'; $stmt = $pdo->prepare($sql); $stmt->bindParam(':nbacheteur', $idCoupon + 1, PDO::PARAM_INT); $stmt->bindParam(':idCoupon', $idCoupon, PDO::PARAM_INT); $stmt->execute(); } } } catch (Exception $e) { die('Erreur : ' . $e->getMessage()); } ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" > <head> <title>Projet ISEP</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <link rel="stylesheet" type="text/css" media="screen" href="css/screen.css" /> <style type="text/css" media="screen"> .tooltip{width:200px;margin:0;padding:5px;font-size:11px;color:#666;background:#fff;border:5px solid #ccc;} .tooltip p{margin:0;text-align:justify;} </style> <!-- Script initialisation jquery --> <script type="application/javascript" src="http://code.jquery.com/jquery-1.6.2.min.js" charset="utf-8"></script> <script type="application/javascript" src="lib/jquery.selectbox-0.5.js"></script> <script type="application/javascript" src="lib/jquery.qtip-1.0.0-rc3.js"></script> <script type="application/javascript" src="lib/custom.js"></script> <script type="application/javascript" src="lib/jquery.simpletooltip-min.js"></script> <script type="application/javascript"> function linkTooltips() { $(".anyClass").jCarouselLite({ btnNext: ".next", btnPrev: ".prev" }); $("a.tooltiplink").simpletooltip(); $("a.clic").simpletooltip({ click: true }); $("a.delay").simpletooltip({ hideDelay: 0.5 }); $("#demo_1").simpletooltip({ margin: 10 }); $("#demo_2").simpletooltip({ showEffect: "fadeIn", hideEffect: "fadeOut" }); $("#demo_3").simpletooltip({ showEffect: "slideDown", hideEffect: "slideUp" }) ; $("#demo_4").simpletooltip({ showEffect: "show", hideEffect: "hide" }); $("#demo_5").simpletooltip({ click: true }); $("#demo_6").simpletooltip({ hideDelay: 0.5 }); $("#demo_7").simpletooltip({ click: true, hideOnLeave: false }); $("#demo_8").simpletooltip({ callback: function(tooltip) { window.alert('Callback : affichage de la tooltip #'+tooltip.id); } }); $("#demo_9").simpletooltip({ customTooltip: function(target) { return '<p style="width:200px;height:50px;margin:0;padding:10px;' + 'background:#fff;border:1px solid #000;">Texte de l\'élément survolé :<br /> "' + $(target).text() +'" </p>'; }, showEffect: "fadeIn", hideEffect: "fadeOut" }); }; $(document).ready(function(){ linkTooltips(); }); function AffichageCarrouselAjax() { // alert('url(fond/' + idselect + '.jpg)'); // alert('TEST'); var idVille = $('#Items option:selected').val(); var idCateg = $('#categ input:checked').val(); // alert(':' + idCateg + ':' + idCateg ); $.ajax({ type: "POST", url: "_inclus/afficher-carrousel-ville-ajax.php", data: "idville="+idVille+"&idcateg="+idCateg, dataType: "html", cache: false, success: function(html) { $("#idcarrousel").html(html);linkTooltips(); return false; // arrêt de la propagation de l'évènement dans le DOM } }); $('body').css('background-image','url(fond/' + idVille + '.jpg)'); }; // $(function(){ // $("select:eq(0)").imgDropDown({title:"Paris"}); // }); </script> </head> <body background="fond/1.jpg"> <div id="en_tete"> <!-- Ici on mettra la bannière --> </div> <div id="menu"> <!-- Ici on mettra le menu --> </div> <div id="corps"> <!-- Ici on mettra le contenu principal de la page (tout le texte quoi) --> </div> <div id="pied_de_page"> <!-- Enfin, on mettra en bas de la page le nom de l'auteur, un copyright... --> </div> <div class="option"> <form method="post" action="index.php" id="form_items" name="form_items"> <select name="Items" id="Items" onchange="AffichageCarrouselAjax();"> <?php foreach($villes as $ville): ?> <option value="<?php echo $ville['id']; ?>"><?php echo $ville['nom']; ?></option> <?php endforeach; ?> </select> </form> </div> <div id="conteneur"> <button class="prev"><<</button> <button class="next">>></button> </div> <div id="idcarrousel" class="anyClass"> <ul> <?php foreach($deals as $deal): ?> <li> <a href="<?php echo '#'.$deal['id']?>" class="tooltiplink"> <img src="images/<?php echo $deal['image']; ?>.jpg" alt="" width="100" height="100" /> </a> </li> <?php endforeach; ?> </ul> </div> <div id="categ"> <form method="post" action="index.php"> <p>Catégories :<br /><br /> <?php foreach($categs as $categ): ?> <input value="<?php echo $categ['id']; ?>" name="categ" type="radio" onchange="AffichageCarrouselAjax();" /> <label for="frites"><?php echo $categ['type']; ?></label><br /> <?php endforeach; ?> </p> </form> </div> <?php foreach($deals as $deal): ?> <div id="<?php echo $deal['id']; ?>" class="tooltip"> <h1><?php echo $deal['titre']; ?></h1><br /> <p>Description : <?php echo $deal['detaildeal']; ?></p><br /> <p>Adresse : <?php echo $deal['adressedeal']; ?></p><br /> <p>Expire le : <?php echo $deal['findeal']; ?></p><br /> <p>Acheteurs : <?php echo $deal['nbacheteur']; ?></p><br /> <form method="post" action="index.php"> <p> <label><strong>Prénom</strong></label> : <input type="text" name="prenom" /><br /><br /> <label><strong>Nom</strong></label> : <input type="text" name="nom" /><br /> <input type="hidden" name="idcoupon" value="<?php echo $deal['id']; ?>" /><br /> <input type="hidden" name="findeal" value="<?php echo $deal['findeal']; ?>" /><br /> <input type="hidden" name="nbr" value="<?php echo $deal['nbacheteur']; ?>" /><br /> <input type="hidden" name="presta" value="<?php echo $deal['idcateg']; ?>" /><br /> <input type="submit" /> </p> </form> </div> <?php endforeach; ?> </body> </html
Lorsque que j'enleve les commentaires j'ai une liste déroulante avec jquery mais ajax ne marche plus du tout
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 $(function(){ $("select:eq(0)").imgDropDown({title:"Paris"}); });
Je suis donc aller dans le custom.js voir à quoi ressembler cette fonction et la voici :Serait il possible de savoir ce qui empeche ajax de fonctionner pour enfin finir pour de bon.
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 (function($) { //Définition du plugin $.fn.imgDropDown = function(options) { // définition des paramètres par défaut var defaults = { title: "", selectEvent: null }; // mélange des paramètres fournis et des paramètres par défaut var opts = $.extend(defaults, options); // création d'une liste function createList(f){ // créer la première zone, affichant l'option sélectionnée var cell = $('<div class="dropdownCell">' + opts.title + '</div>'); // créer la seconde zone, affichant toutes les options var dropdown = $('<div class="dropdownPanel"></div>'); $(this).find("option").each(function(){ dropdown.append($('<div class="dropdownOpt"></div>') .click(onSelect) .attr("value", $(this).attr("value")) .append($(this).html()) .hover(function(){$(this).addClass("dropdownOptSelected");}, function(){$(this).removeClass("dropdownOptSelected");}) ); }); // on masque la zone déroulante dropdown.hide(); $.data(cell, "visible", false); // on remplace la balise ul par notre liste personnalisée $(this).after(dropdown); $(this).after(cell); $(this).remove(); // on positionne l'évènement de déroulage de la liste cell.click(function(){ // si la liste est déroulée if ($.data(cell, "visible")){ dropdown.slideUp("fast"); $.data(cell, "visible", false); }else{ dropdown.slideDown("fast"); $.data(cell, "visible", true); } }); // fonction appelée à chaque sélection d'un élément function onSelect(){ cell.html($(this).html()); cell.attr("value", $(this).attr("value")); dropdown.slideUp("fast"); $.data(cell, "visible", false); var id_ville = $(this).val(); $('body').css('background-image','url(fond/' + id_ville + '.jpg)'); // appel d'une fonction personnalisée if (opts.selectEvent) opts.selectEvent($(this)); } } // création d'une liste déroulante personnalisée pour tous les éléments de l'objet jQuery $(this).each(createList); // interface fluide return $(this); }; })(jQuery);
Salut,
Tu t'es embêté pour rien, j'avais corrigé cette coquille au message 158 juste après l'avoir publié, au moins t'as cherché
Essaye de modifier le code exécuté au chargement :
Je pense que ton problème relève plus là maintenant de l'utilisation de jQuery et des plugins que de PHP.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 $(document).ready(function(){ linkTooltips(); $("select:eq(0)").imgDropDown({title:"Paris"}); });
- PDO++ : Une nouvelle façon d'utiliser PDO. Billet de blog || Code source
- PhpEcho : Un moteur de rendu en une seule classe ! Nouvelle version (release 2.3.2) publiée le 18/04/2020 : Billet de blog || Code source
Cela n'a pas fonctionné.
Je viens de comprendre qu'avec cette liste déroulante, ajax ne me revoit que l'id de la catégorie et plus l'id de la ville...
Pourquoi cela?
Merci
EDIT :
la commande suivante me revoit "undefinided" au lieu de l'id sélectionné :
Code : Sélectionner tout - Visualiser dans une fenêtre à part var idVille = $('#Items option:selected').val();
J'avais également remarqué que la fonction permettant al définition du plugin avait ces propres class, j'ai donc changé les #Items par les class présentes dans la fonction .dropdownCell, .dropdownPanel et .dropdownOpt mais cela n'a toujours rien changé:
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 (function($) { //Définition du plugin $.fn.imgDropDown = function(options) { // définition des paramètres par défaut var defaults = { title: "", selectEvent: null }; // mélange des paramètres fournis et des paramètres par défaut var opts = $.extend(defaults, options); // création d'une liste function createList(f){ // créer la première zone, affichant l'option sélectionnée var cell = $('<div class="dropdownCell">' + opts.title + '</div>'); // créer la seconde zone, affichant toutes les options var dropdown = $('<div class="dropdownPanel"></div>'); $(this).find("option").each(function(){ dropdown.append($('<div class="dropdownOpt"></div>') .click(onSelect) .attr("value", $(this).attr("value")) .append($(this).html()) .hover(function(){$(this).addClass("dropdownOptSelected");}, function(){$(this).removeClass("dropdownOptSelected");}) ); }); // on masque la zone déroulante dropdown.hide(); $.data(cell, "visible", false); // on remplace la balise ul par notre liste personnalisée $(this).after(dropdown); $(this).after(cell); $(this).remove(); // on positionne l'évènement de déroulage de la liste cell.click(function(){ // si la liste est déroulée if ($.data(cell, "visible")){ dropdown.slideUp("fast"); $.data(cell, "visible", false); }else{ dropdown.slideDown("fast"); $.data(cell, "visible", true); } }); // fonction appelée à chaque sélection d'un élément function onSelect(){ cell.html($(this).html()); cell.attr("value", $(this).attr("value")); dropdown.slideUp("fast"); $.data(cell, "visible", false); var id_vil = $(this).val(); $('body').css('background-image','url(fond/' + id_vil + '.jpg)'); // appel d'une fonction personnalisée if (opts.selectEvent) opts.selectEvent($(this)); } } // création d'une liste déroulante personnalisée pour tous les éléments de l'objet jQuery $(this).each(createList); // interface fluide return $(this); }; })(jQuery);
J'ai finalement trouver un autre solution à ce problème.
Je reviens encore une fois car j'ai un problème assez courant avec l'affichage des caractères spéciaux sur ma page.
j'ai modifier le charset dans ma apge principal en remplacent utf-8 par latin1 :
Résultant, maintenant tout va bien lorsque je vais sur le site, mais lorsque j'utilise AJAX les accents et autres caractères spéciaux dans mes tooltip sont remplacés par des "?"...
Code : Sélectionner tout - Visualiser dans une fenêtre à part <meta http-equiv="Content-Type" content="text/html; charset=latin1" />
Que faire svp
Merci
Encoder toutes tes pages en utf-8 sans BOM.
Avant toute chose : lire le mode d'emploi du forum et ses règles.
Je ne réponds pas aux questions techniques en MP.
Bonjour,
Ajoute cette ligne au début de tes fichiers appelés par Ajax :
-> Fixer le paramètre HTTP charset
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 <?php // affichage correct des accents header('Content-Type: text/html; charset=ISO-8859-15'); ?>
-> character-sets
-> ISO-8859-15
Dernière modification par Invité ; 31/08/2011 à 11h57.
Merci!!
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager