Récupérer la valeur d'un input type button

Par Lucie Muterel, il y a 10 ans


Bonjour,

Voila je rencontre un petit problème avec mon code et tout est dans le titre, je ne parviens pas à faire apparaître la valeur de mon boutton soit "777". :(

index.php

<style> <?php include 'css/dashboardFormulaire.css'; ?> </style> <script> function chercher_elements(n) { var liste = document.getElementsByTagName('input'), nbre = liste.length, cherche=n+'-', lg=cherche.length, trouve = [], index, element, zz; for (index = 0; index < nbre; index ++) { element = liste[index].id; if (n!='tout') { if (element.substring(0,lg)==cherche) trouve.push(element); } else { if (element.substring(0,1)>='0' && element.substring(0,1)<='9') trouve.push(element); } } return trouve; } function selectionner(z,chk){ var dossiers = chercher_elements(z); var nbre = dossiers.length; for (var i = 0; i < nbre; i++) { document.getElementById(dossiers[i]).checked=chk; } } </script> <?php function scanRecursiveDir($path = '../', $level , $levelprec) { if(substr_count($levelprec, '-') != 0) return; $numdossier = 1; // Répertoires à ignorer $ignore = array('.', '..','public_html'); // Répertoire à ouvrir $dh = @opendir($path); // Boucler dans le répertoire : while(false !== ($file = readdir($dh))) { //Si ce fichier ne doit pas être ignoré alors... if(!in_array( $file, $ignore)) { // On effectue un espace pour une meilleure vue... $spaces = str_repeat('&nbsp;', ($level * 5)); // Et on ne montre que les sous-répertoires ! if(is_dir("$path/$file")) { //On place dans une variable les droits de chaque répertoires que l'on appelera à chaque fois $perms = substr(sprintf('%o', fileperms($path)), -3); // On appelle à nouveau cette fonction dans les nouveaux répertoires de façon à ce que ce soit récursif. $idcourant = "$levelprec".(strlen($levelprec)?'-' : '')."$numdossier"; echo" <li id=\"lucie_arborescence\">" .$spaces."\r\n". "<input type=\"checkbox\" name=\"checkboxDossierPath[]\" id=\"$idcourant\" onclick = \"selectionner('$idcourant',this.checked);\" value=\"$path\"/> \r\n"."<a href=$path/$file> $file</a> <div class=\"securitywp_droit\">($perms)</div></li>"; scanRecursiveDir("$path/$file", ($level+1),"$levelprec".(strlen($levelprec)?'-' : '')."$numdossier"); $numdossier++; } } } //On n'oublie pas de fermer le répertoire racine closedir($dh); } ?> <div id="securitywp_explorateur"> <header id="securitywp_header"> <input type="checkbox" name="toutCocher" id="checkall" onclick = "selectionner('tout',this.checked);" /> Tout sélectionner </header> <div id="securitywp_container_id"> <div id="securitywp_result_ajax"></div> <?php echo '<form id="securitywp_form" name="form" action="../wp-content/plugins/SecurityWP/traitement.php" methode="POST"><ul>'; scanRecursiveDir('../', 0, ''); ?> <div id="securitywp_chmodButtons"> Choisir une sécurité : <br/> <input type="button" name="button01" id="button001" class="class_buttons" value="700"/> <input type="button" name="button02" id="button002" class="class_buttons" value="755"/> <input type="button" name="button03" id="button003" class="class_buttons" value="705"/> </div> <div id="securitywp_footer"> Retirer la sécurité : <br/> <input type="button" name="button04" id="securitywp_noSecurity" class="class_buttons" value="777" name="securitywp_noSecurity"/> </div> <?php echo '</ul></form>'; ?> </div> </div> <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> <script> $(document).ready(function() { $("#securitywp_form").submit(function(e) { var postData = $(this).serializeArray(); var formURL = $(this).attr("action"); $.ajax( { url : formURL, type: "POST", data : postData, success:function(data, textStatus, jqXHR) { function include(file) { var oScript = document.createElement("script"); oScript.src = file; document.body.appendChild(oScript); $("#securitywp_result_ajax").html(data); $("#securitywp_result_ajax").css({"display":"block"}); } include("../wp-content/plugins/SecurityWP/traitement.php"); }, error: function(jqXHR, textStatus, errorThrown) { $("#securitywp_result_ajax").html("Attention"); } }); e.preventDefault(); //STOP default action }); $("#securitywp_noSecurity").click(function() { $("#securitywp_form").submit(); }); }); </script>

traitement.php

<?php if(isset($_POST['checkboxDossierPath'])) { echo $_POST['button03']; foreach($_POST['checkboxDossierPath'] as $valeur) { echo "La checkbox $valeur a été cochée<br>"; } echo '</div>'; } else { echo 'Veuillez tout d\'abord sélectionner les dossiers auxquels modifier les attributs.'; } ?>

3 réponses

Azorgh, il y a 10 ans

Hello,

Je ne vais pas répondre à ta question mais plutôt de donner un conseil.
Sans essayer ton code, j'ai l'impression que tu veux faire le comportement de radio button non ? (Choisir une sécurité).

Tu ferais mieux d'utiliser des radios, et les styliser par la suite si le style ne te plait pas, plutôt que de faire des input button chelou.
Je suis pas sur de ma prochaine phrase :
Et puis des bouttons restent des bouttons, pourquoi vouloir leurs assigner une valeur. Bizzare comme idée non ?

Lucie Muterel, il y a 10 ans

Et bien à chacuns des mes boutons, j'ai attribué le onclick suivant : onclick="this.form.choice.value=this.value;"
Et par de l'AJAX, je le renvois vers traitement.php, et le récupères dans une variable (bien sûr, j'ai déplacé tout mes boutons dans le formulaire). Donc ça rejoint un peu l'idée que vous avez énoncé.

Merci à vous et bonne journée.

Lucie Muterel, il y a 10 ans

PallMallShow,

Ne t'inquiètes pas, au final j'ai pu faire comme je voulais :)
Oui bizarre comme idée, mais bon, c'est le client qui a toujours raison, et on doit répondre à ses exigences, donc trouver une façon de faire pour y répondre prompremment.