• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

checkbox Value speichern

thdenim

Neues Mitglied
Hallo,

vorab ich habe nicht viel Ahnung von php.

Ich habe ein Script installiert, das mir sämmtliche Dateien die in einem Verzeichnis sind anzeigt.

Hier ist die Stelle, wo jeder Filename mit Verlinkung angezeigt wird.

Code:
if(isset($fileArray)) {
                foreach($fileArray as $row) {
                        $content .= '<input name="'.$file.'" type="checkbox" value="" />'. '<a href="'.$ordner.'/'.$row.'">'.$row.'</a><br />';//Dateien verlinken
                }
        }
Da es ca 30 Dateien sind kann ist es auf dem ersten Blick nicht direkt ersichtig erkennen welche Datei ich schon runtergeladen und bearbeitet habe, da ich auch eine untschiedliche Reihenfolge verwende. Deswegen kam ich auf die Idee eine Checkbox vor jede Datei einzufügen was ich bereits hinbekommen habe.
Was jetzt meine Frage ist, wo oder wie kann ich den Wert der Checkbox speichern ob ich die schon bearbeitet habe?
Zum speichern der Werte ob die Werte bereits verwendet werden ist es egal ob das in einer externen Datei gespeichert werden oder ein SQL Server ist auch vorhanden, davon habe ich jedoch noch weniger Ahnung als php und es ist nicht wichtig ob der Wert nach jedem Klick gespeichert wird oder ob ich ganz am Ende einen Button zum speichern einfüge.
 
Werbung:
Gib der checkbox einen Value-Wert, z.B. "1". Im PHP kannst Du dann mit

PHP:
echo $_REQUEST[$file];

auslesen, ob dort eine "1" oder nichts gesetzt wurde.
 
Wie funktioniert das denn genau?

Ich benutze ja eine foreach schleife, bei der ja die Checkboxen alle erzeugt werden.
Wenn es zu kompliziert und aufwendig ist, dann muss ich halt die altmodische Methode machen und die Liste ausdrucken und von Hand abhaken. Ich hatte gehofft das es einfach ohne grossen Aufwand mit ein paar Zeilen zu programmieren ist...
 
Werbung:
Wie es funktioniert habe ich dir oben schon geschrieben. Es kommt drauf an, dass die Checkbox einen value-Wert hat und wenn die Checkbox angehakt ist, erhält die Variable der Checkbox auch einen Wert - ansonsten (nicht angehakt) hat sie keinen.
 
Ansatz:

PHP:
<!DOCTYPE html>

<html lang="en">

    <head>
        <meta charset="utf-8" />
        <title>New</title>
    </head>

    <body>
        <?php if (count($_POST) > 0) : ?>

        <p>Angeklickt:
            <?php echo implode(', ', array_keys($_POST['data'])); ?>
        </p>

        <?php endif; ?>


        <form method="post" action="">
            <p><input type="checkbox" name="data['test.txt']" value="1" /> test.txt</p>
            <p><input type="checkbox" name="data['hello.txt']" value="1" /> hello.txt</p>
            <p><input type="checkbox" name="data['world.txt']" value="1" /> world.txt</p>
            <p><input type="submit" /></p>
        </form>
    </body>

</html>
 
ich versuche jetzt schon seid mehreren stunden eure Hilfe zu verwirklichen. Ich gebe langsam auf! Wäre nett wenn mir jemand helfen könnte ansonsten muss ich halt darauf verzichten

PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" dir="ltr" xml:lang="de">
<head>
    <meta http-equiv="content-type" content="text/html; charset=UTF-8" />
    <title>Ordnerinhalt</title>
</head>
<body>

<?php

if (!function_exists('scandir')) {
    function scandir($directory, $sorting_order=0) {
        if(!is_dir($directory)) {
            return false; 
        }
        $files = array();
        $handle = opendir($directory);
        while (false !== ($filename = readdir($handle))) {
        
            $files[] = $filename; 
        }
        closedir($handle);

        if($sorting_order == 1) {
            rsort($files); 
        } else {
            sort($files); 
        }
        return $files;
    }
}

function ordnerinhalt($ordner='.') {
        $content = "";

        foreach(scandir($ordner) as $file) {
                if($file[0] != '.') { // Versteckte Dateien nicht anzeigen
                        if(is_dir($ordner.'/'.$file)) {
                                $folderArray[] = $file;
                        } else {
                                $fileArray[] = $file;
                        }
                }
        }

        // Erst die Ordner ausgeben
        if(isset($folderArray)) {
                foreach($folderArray as $row) {
                        $content .= '<b>'.$row.'</b><br />';
                        $content .= '<div style="padding-left:10px;color:#afafaf" />'; //Unterordner nach Rechts einrücken
                        $content .= ordnerinhalt($ordner.'/'.$row); // rekursive Funktion
                        $content .= '</div>';
                }
        }

        // ...dann die Dateien ausgeben
        if(isset($fileArray)) {
                foreach($fileArray as $row) {
                        $content .= '<input name="'.$file.'" type="checkbox" value="'.$file.'"'.check.'  />'. '<a href="'.$ordner.'/'.$row.'">'.$row.'</a><br />';//Dateien verlinken
                }
        }

        // Rekursion ende
        return $content;
}

echo ordnerinhalt();        

        printf('<input type="hidden" name="sent" value="yes">');
        printf('<input type="submit">');
        

function check() 
    {
         $sent = $_GET['sent'];            
         $name = $_GET['name'];            
         $file= $_GET['test.txt'];    
  
         if ($sent == 'yes') {
                 foreach($fileArray)
                 {
                    if(checked = true)
                    {
                        echo $_REQUEST[$file]; 
                    }
                    
                 }

        }
    }
?>
</body>
</html>
 
Werbung:
Ändere

PHP:
$content .= '<input name="'.$file.'" type="checkbox" value="'.$file.'"'.check.'  />'. '<a href="'.$ordner.'/'.$row.'">'.$row.'</a><br />';//Dateien verlinken

in

PHP:
$content .= '<input name="'.$file.'" type="checkbox" value="1"'.check.'  />'. '<a href="'.$ordner.'/'.$row.'">'.$row.'</a><br />';//Dateien verlinken

und

PHP:
foreach($fileArray)
                 {
                    if(checked = true)
                    {
                        echo $_REQUEST[$file]; 
                    }
                    
                 }

in

PHP:
foreach($fileArray as $file)
                 {
                    if($_REQUEST[$file] == "1")
                    {
                        echo $_REQUEST[$file]." wurde angehakt<br />";
                    }
                    
                 }
 
Zurück
Oben