Page 1 sur 1

$.post ne fonctionne pas :/

Posté : 22 janv. 2016, 17:00
par lucieemtl
Bonjour à tous et à toutes,

Est-ce que quelqu'un pourrait m'expliquer pourquoi j'ai le message d'erreur suivant : Notice: Undefined index: valNum in C:\wamp\www\wordpress2\wp-content\plugins\DWPSecurity\traitement.php on line 51

avec mon code qui est celui-ci :

Traitement.php

Code : Tout sélectionner

<?php if(isset($_POST['checkboxDossierPath'])) { ?> <div id="lucie_title"> <h1 id="lucie_title_modif">ATTRIBUTS DES FICHIERS</h1> <hr/> <p id="lucie_instructor">Séléctionnez les nouveaux attributs pour les dossiers séléctionnés :</p> </div> <div id="lucie_droits"> <form id="lucie_attributionDroits" name="lucie_attributionDroits" action="#" method="POST"/> <fieldset class="lucie_fieldset_proprio"> <legend class="lucie_legend"> Permissions du propriétaire </legend> <ul class="lucie_droits_dossiers"> <li><input type="checkbox" name="checkbox_droit" id="checkboxLire_proprio" value="4"/>Lire</li> <li><input type="checkbox" name="checkbox_droit" id="checkboxEcrire_proprio" value="2"/>Écrire</li> <li><input type="checkbox" name="checkbox_droit" id="checkboxExecuter_proprio" value="1"/>Éxécuter</li> </ul> </fieldset> <fieldset class="lucie_fieldset_groupe"> <legend class="lucie_legend"> Permissions de groupe </legend> <ul class="lucie_droits_dossiers"> <li><input type="checkbox" name="checkbox_droit" id="checkboxLire_groupe" value="4"/>Lire</li> <li><input type="checkbox" name="checkbox_droit" id="checkboxEcrire_groupe" value="2"/>Écrire</li> <li><input type="checkbox" name="checkbox_droit" id="checkboxExecuter_groupe" value="1"/>Éxécuter</li> </ul> </fieldset> <fieldset class="lucie_fieldset_public"> <legend class="lucie_legend"> Permissions publiques </legend> <ul class="lucie_droits_dossiers"> <li><input type="checkbox" name="checkbox_droit" id="checkboxLire_public" value="4"/>Lire</li> <li><input type="checkbox" name="checkbox_droit" id="checkboxEcrire_public" value="2"/>Écrire</li> <li><input type="checkbox" name="checkbox_droit" id="checkboxExecuter_public" value="1"/>Éxécuter</li> </ul> </fieldset> </form> <!--On utilisera sûrement de l'AJAX pour afficher dynamiquement les droits dans l'input--> <!--En fait il faudrait trouver un moyen pour calculer les fieldset entre eux--> <div id="lucie_valeur_num"></div> <input type="button" name="lucie_valider_attributs" value="ATTRIBUER" id="lucie_valider_attributs"/> </div> <?php echo '<div id="lucie_foreachDossier">'; include 'js/numerisation.js'; echo $_POST['valNum']; foreach($_POST['checkboxDossierPath'] as $valeur) { //Il faudra peut-être utiliser ce code à un moment $mode =0755;chmod("$valeur", octdec($mode)); On précise que $mode sera spécifier en fonction des choix de l'utilisateur echo "La checkbox $valeur a été cochée<br>"; } echo '</div>'; } else { echo '<h1 id="lucie_title_error">ATTENTION !</h1><hr/><p id="lucie_errorDossier">Veuillez tout d\'abord sélectionner les dossiers auxquels modifier les attributs.</p>'; } ?>
Mon JS :

Code : Tout sélectionner

<script> $(function numerisation(){ $('#lucie_valider_attributs').click(function(){ // Ce tableau javascript va stocker les valeurs des checkbox var checkbox_val_proprio = []; var checkbox_val_groupe = []; var checkbox_val_public = []; // Parcours de toutes les checkbox checkées avec les différentes classes $("#checkboxLire_proprio:checked, #checkboxEcrire_proprio:checked, #checkboxExecuter_proprio:checked").each(function(){ checkbox_val_proprio.push(parseInt($(this).val())); }); $("#checkboxLire_groupe:checked, #checkboxEcrire_groupe:checked, #checkboxExecuter_groupe:checked").each(function(){ checkbox_val_groupe.push(parseInt($(this).val())); }); $("#checkboxLire_public:checked, #checkboxEcrire_public:checked, #checkboxExecuter_public:checked").each(function(){ checkbox_val_public.push(parseInt($(this).val())); }); //Les lignes de code "console.log" permettent de vérifier les valeurs du tableau (dans la console) //console.log(checkbox_val_proprio); //console.log(checkbox_val_groupe); //console.log(checkbox_val_public); //Ici, on va additionner les valeurs qui auront été placées dans le tableau checkbox_val_proprio. var tableauArray1 = checkbox_val_proprio.reduce(function(a, b) { return a + b; }); //console.log(tableauArray1); //On peut le vérifier le total grâce à la console. Si admettons "Lire", "Écrire", et "Éxécuter" ont été cochées, alors la console renverra 7 var tableauArray2 = checkbox_val_groupe.reduce(function(a, b) { return a + b; }); //console.log(tableauArray2); var tableauArray3 = checkbox_val_public.reduce(function(a, b) { return a + b; }); //console.log(tableauArray3); var valeurNumerique = String(tableauArray1)+String(tableauArray2)+String(tableauArray3); //console.log(valeurNumerique); //$("#lucie_valeur_num").html('Valeur numérique : '+valeurNumerique); $.post("../wp-content/plugins/DWPSecurity/traitement.php",{'valNum':valeurNumerique}, function(data){$("#lucie_valeur_num").html('Valeur numérique : '+valeurNumerique);}); }); }); </script>
Puisque la div #lucie_valeur_num prend bien "Valeur numérique : 777" (par exemple), je ne vois pas pourquoi lorsque je fais echo $_POST['valNum'] ça ne fonctionne pas.....

Re: $.post ne fonctionne pas :/

Posté : 22 janv. 2016, 17:07
par @rthur
Bonjour


Le message d'erreur indique que $_POST['valNum'] n'existe pas donc 2 choses à vérifier :

- Fais un Ctrl+Maj+i => onglet réseau et regarde ce qui est envoyé en paramètre pour voir si valNum est correctement envoyé.
- En PHP, tu peux aussi faire un var_dump($_POST); pour voir ce qui est reçu par PHP.

Re: $.post ne fonctionne pas :/

Posté : 22 janv. 2016, 17:19
par lucieemtl
Où est l'onglet réseau s'il vous plaît ?

Re: $.post ne fonctionne pas :/

Posté : 22 janv. 2016, 17:46
par lucieemtl
S'il vous plaît aidez-moi, il y'a un gros projet derrière tout ça et cette petite subtilité m'empêche d'avancer....

Re: $.post ne fonctionne pas :/

Posté : 23 janv. 2016, 00:26
par @rthur
Sous Firefox et Chrome, Ctrl + Maj + i permet d'accéder aux outils de développements, ça va t'ouvrir un volet avec des onglets .

Si tu utilises un autre navigateur, installe Chrome ou Firefox vu que ce sont les 2 navigateurs qui ont les meilleurs outils pour les développeurs et surtout le + de part de marché donc c'est avec eux qu'il est préférable de développer pour s'assurer que ça fonctionnera pour la majorité des internautes