En fait tout est dit dans l'objet de ce sujet : mon problème est, que lorsque je coche une case correspondant à un dossier, j'aimerai que celles des sous-dossiers soient cochées automatiquement. Toutefois, si un sous-dossier seulement est coché, alors les autres ne sont pas cochés.
J'avais déjà mis en place un petit système pour que, lorsqu'une checkbox principale est cochée alors toutes les autres le sont, mais je n'arrive pas à l'appliquer dans ma boucle.
Voici mon code, quelqu'un aurait-il une idée ?
Code : Tout sélectionner
<style>
<?php
include 'css/style.css';
include 'css/jqueryFileTree.css';
?>
</style>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.18/jquery-ui.min.js"></script>
<script>
<?php
include 'js/checkall.js';
?>
</script>
<div id="explorateur">
<header id="header">
<input type="checkbox" name="toutCocher" id="checkall"/>
<input type="button" name="valider" id="boutonValider" value="Mettre à jour"/>
</header>
<div id="container_id">
<?php
getDirectory('../');
echo '<table id="tableExplorer">';
function getDirectory( $path = '../', $level = 0 )
{
// Répertoires à ignorer
$ignore = array( '.', '..' );
// 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(' ', ($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.
echo"<tr><td><ul><li id=\"arborescence\">$spaces<input type=\"checkbox\" name=\"checkbox\"/><a href=$path/$file><img src=\"/wordpress2/wp-content/plugins/DWPSecurity/icons/directory.png\" height=\"20\"/> $file</a><p>($perms)</p></li>";
getDirectory("$path/$file", ($level+1));
}
}
echo"</ul></td>";
}
// Close the directory handle
closedir( $dh );
echo "</tr>";
}
echo '</table>';
?>
</div>Code : Tout sélectionner
$(document).ready(function() {
$("#checkall").click(function() {
$("input:checkbox").each(function(){
var checked = $("#checkall").attr("checked");
if(checked == "checked") {
$(this).attr('checked', true);
} else {
$(this).attr('checked', false);
}
});
});
});