PHP-und HTML-Checkboxen mit POST
Ich habe eine php-Datei listet alle Dateien in einem Verzeichnis mit der Ankreuzfelder:
<html
<body>
<P>List of files:</p>
<form action="submitfiles.php" method="post">
<?php
if ($handle = opendir('./files')) {
while (false !== ($file = readdir($handle)))
{
if ($file != "." && $file != "..")
{
$thelist .= '<a href="'.'./files/'.$file.'">'.$file.'</a>';
$thelist .= '<br>';
$s = '<input type="checkbox" name="'.$file.'" value="yes"/><a href="'.'./files/'.$file.'">'.$file.'</a>';
echo $s;
echo '<br';
}
}
closedir($handle);
}
?>
</body>
<input type="submit" name="formSubmit" value="Submit"/>
</form>
</html>
Dann habe ich ein submitfiles.php, die durchläuft alle Dateien, und bekommt die $_POST-Werte für jede checkbox.
<?php
if ($handle = opendir('./files')) {
while (false !== ($file = readdir($handle)))
{
if ($file != "." && $file != "..")
{
echo 'Value is ' . $_POST['$file'] . '<br>';
echo $file . '<br>';
}
}
closedir($handle);
}
?>
Selbst wenn ich eine checkbox obwohl, die Zeile "Wert" in meiner php-Datei immer druckt eine leere. Bedeutung, keine der Optionen jemals einen Wert erhalten. Wie bekomme ich diese zu arbeiten? Wenn ich überprüft eine checkbox, ich will es print "Wert ist "ja", aber es funktioniert nicht.
- haben Sie versucht dabei eine
var_dump
der POST zu sehen, was Sie tatsächlich erhalten, die als Eingabe fürsubmitfiles.php
? Sind Sie sicher, dass$file
gilt als ein name-Attribut? - Ihre
body
undform
verwickelt sind. Es ist<body><form>...</body></form>
hier.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Okay - es ist ein leichtes trennen Sie in Ihrem code...
Ist hier die checkbox:
Hier ist Ihr Versuch, es zu bekommen:
Den Namen der checkbox nicht "$Datei" - es wird der Wert der Variablen $Datei...
Also versuchen, Sie zu ändern, um...
Bekommen und Sie so...
Nun $FileCheckBoxes enthält eine Liste von denen, die geprüft wurden.
Du haben willst Kontrollkästchen, um die Ausgabe eines Arrays.
Auf der Linie
echo 'Value is ' . $_POST['$file'] . '<br>';
in submitfiles.php versuchen Sie nicht, verwenden Sie Anführungszeichen um $Datei, etwa so:
echo 'Value is ' . $_POST[$file] . '<br>';
Verwendung von single quotes die Kräfte von PHP nicht ausgewertet, der Wert von $Datei ein. Lesen, bis auf einzelne Zitate an http://www.php.net/manual/en/language.types.string.php#language.types.string.syntax.single
Das problem ist diese Zeile hier:
Entfernen Sie die Anführungszeichen um die array-Schlüssel (oder doppelte Anführungszeichen verwenden):
Wenn Sie einzelne Zitate, die variable $Datei wird als Zeichenfolge übergeben. Lesen Sie mehr darüber, warum dies so ist, gilt auch hier: http://php.net/string/