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.';
}
?>

4 réponses


Sullivan Villella
Réponse acceptée

Bonjour,

Une simple fonction en javascript :
var valeur = document.getElementById("id de l'input dont tu souhaite récuperer la valeur").value;

En espérant t'avoir aidé

Bonne soirée

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 ?

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.

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.