1Danke
ERLEDIGT
JA
JA
ANTWORTEN
9
9
ZUGRIFFE
179
179
EMPFEHLEN
-
Guten Abend,
Ich habe folgendes Problem:
Ich habe eine Datei erstellt, mit der ich Daten aus einer Form an meine DB senden kann. Das klappt soweit auch gut. Nun möchte ich in dieser Form noch eine Dropdownliste haben mir die Dateien aus einem Ordner auf dem server ausliest und den entsprechenden wert mit an die bd sendet.
D.h. auf dem Server sind folgende Dateien test.php, beispiel.zip und diese werte sollen in der dropdownliste stehen. Je nach dem welchen Wert ich auswähle, soll dieser mit an die Datenbank geschickt werden z.B. "test.php" soll an Tabelle testdb Deld file gesendet werden.
Die Dropdownliste habe ich geschrieben und sie funktioniert auch, konkret kann ich
a) nicht das dropdown script in das eigentliche Übergabescript einbinden und
b) weiß ich nciht wie ich den wert mit übergebe
hat jemand eine idee?
Vielen Dank & Gruss
hier die scripte:
addentry.php
und raeddir.phpPHP-Code:<?php
include("include.php");
if (!$_POST) {
$display_block = "
<form method=\"post\" action=\"".$_SERVER["PHP_SELF"]. "\">
<p><strong>Name</strong><br/>
<input type=\"text\" name=\"name\" size=\"30\" maxlength=\"75\"><br/>
<strong>Beschreibung</strong><br/>
<textarea name=\"description\" cols=\"50\" rows=\"4\" wrap=\"virtual\"></textarea><br>
<strong>Date</strong><br/>
<input type=\"text\" name=\"date\" size=\"20\" maxlength=\"10\"><br/>
</p>
<input type=\"submit\" name=\"submit\" value=\"ok\">
</form>";
} else if ($_POST) {
// insert data to tables
if (($_POST["name"] == "") || ($_POST["description"] == "")) {
header("Location: addentry.php");
exit;
}
// connect to database
doDB();
//add to table
$add_master_sql = "INSERT INTO alben (date_added, name, description, date) VALUES (now(), '".$_POST["name"]."', '".$_POST["description"]."', '".$_POST["date"]."')";
$add_master_res = mysqli_query($mysqli, $add_master_sql)
or die(mysqli_error($mysqli));
mysqli_close($mysqli);
$display_block = "<p> Der Datensatz wurde hinzugefügt! </p>";
}
?>
<html>
<head>
</head>
<body>
<?php echo $display_block; ?>
</body>
</html>
PHP-Code:<?php
$dirname = "./";
$dh = opendir($dirname);
while (!(($file = readdir($dh)) === false)) {
echo "<select name=\"sel_file\"><option>$file</option>";
}
closedir($dh);
?>
-
18.11.08 23:06 #2
- Registriert seit
- Jun 2007
- Ort
- Passau (Niederbayern)
- Beiträge
- 1.394
Hi,
erstmal Willkommen im Forum
dann gleich mal zu deinem Problem:
Den Wert von einem Dropdown-Feld übergibst du anhand des "value"-Attributs in HTML. In deinem Fall willst du den Dateinamen in die Dropdown schreiben und diesen ebenfalls als Wert mitgeben.
Das kannst du mit folgender Änderung in deiner "readdir.php" machen:
Soweit mal das Problem mit dem Übergabewert. Wie diese Datei allerdings mit deiner "addentry.php" zusammenhängt, kann ich mit dem Codeschnipseln nicht sagenPHP-Code:$dirname = "./";
$dh = opendir($dirname);
echo '<select name="sel_file">';
while (!(($file = readdir($dh)) === false)) {
echo '<option value="' . $file . '">' . $file . '</option>';
}
echo '</select>';
closedir($dh);
(wegen Punkt a: "nicht das dropdown script in das eigentliche Übergabescript einbinden")
// Edit:
Tip: Anstatt dass du dich mit den ewigen Backslashes (\) ärgerst, kannst du Strings oder echo-Ausgaben in PHP auch mit einfachen Anführungszeichen schreiben. Dann kannst du dort ganz einfach die normalen Anführungszeichen verwenden.
Beispiel:
Sieht doch gleich viel übersichtlicher aus, oder?PHP-Code:// Anstatt:
$display_block = "
<form method=\"post\" action=\"".$_SERVER["PHP_SELF"]. "\">
<p><strong>Name</strong><br/>
<input type=\"text\" name=\"name\" size=\"30\" maxlength=\"75\"><br/>
<strong>Beschreibung</strong><br/>
<textarea name=\"description\" cols=\"50\" rows=\"4\" wrap=\"virtual\"></textarea><br>
<strong>Date</strong><br/>
<input type=\"text\" name=\"date\" size=\"20\" maxlength=\"10\"><br/>
</p>
<input type=\"submit\" name=\"submit\" value=\"ok\">
</form>";
// Vorschlag:
$display_block = '
<form method="post" action="' . $_SERVER["PHP_SELF"] . '">
<p><strong>Name</strong><br/>
<input type="text" name="name" size="30" maxlength="75"><br/>
<strong>Beschreibung</strong><br/>
<textarea name="description" cols="50" rows="4" wrap="virtual"></textarea><br>
<strong>Date</strong><br/>
<input type="text" name="date" size="20" maxlength="10"><br/>
</p>
<input type="submit" name="submit" value="ok">
</form>';

PS: @Moderator: Bitte ins PHP-Forum verschieben, ich denke da passt das besser rein
Gruß
BratkartoffelGeändert von Bratkartoffel (18.11.08 um 23:11 Uhr)
Über eine gute Bewertung freut sich jeder ;)
Bitte erledigte Threads als "Erledigt" markieren.
"Though a program be but three lines long, someday it will have to be maintained.''
-- Geoffrey James, "The Tao of Programming"
-
@Bratkartoffel
Sauber, Vielen Dank für den Tipp, denke damit sollte ich weiterkommen. Zu dem Verbinden der beiden scripts. Das sind die kompletten scripst und keine code-schnipsel. Wie dem auch sei vielleicht hat sonst ncoh jemand eine Idee wie man das elegant lösen kann aus zwei mach eins!
nochmals Danke Bratkartoffel
-
18.11.08 23:32 #4
- Registriert seit
- Jun 2007
- Ort
- Passau (Niederbayern)
- Beiträge
- 1.394
Keine Ursache

Also, du willst die "readdir.php" in deine "addentry.php" einbauen; Wenn ich das richtig deute, dann wahrscheinlich in den $display_block in das Formular, oder?
Nun, in dem Falle gäbe es mehrere Möglichkeiten
Zum Beispiel einfaches Copy-Paste-Verfahren oder per include und leicht modifizierter "readdir.php".
Über eine gute Bewertung freut sich jeder ;)
Bitte erledigte Threads als "Erledigt" markieren.
"Though a program be but three lines long, someday it will have to be maintained.''
-- Geoffrey James, "The Tao of Programming"
-
@ Bratkartoffel
nochmals Danke dass du am Ball bleibst- also du hast recht, ich würde den code gerne in die addentry.php einfügen, jeodch ist das nicht so leicht. habe das schöne copy paste versucht, allerdings klappte das nicht.
Kannst du mir vvielleicht zeigen wie du den code einbinden würdest?!
wäre stark!
meine idee wäre: über dem submit butten den code einzufügen, allerdings t das wie gesagt nicht.
PHP-Code:<?php
include("include.php");
if (!$_POST) {
$display_block = "
<form method=\"post\" action=\"".$_SERVER["PHP_SELF"]. "\">
<p><strong>Name</strong><br/>
<input type=\"text\" name=\"name\" size=\"30\" maxlength=\"75\"><br/>
<strong>Beschreibung</strong><br/>
<textarea name=\"description\" cols=\"50\" rows=\"4\" wrap=\"virtual\"></textarea><br>
<strong>Date</strong><br/>
<input type=\"text\" name=\"date\" size=\"20\" maxlength=\"10\"><br/>
</p>
// readdir code
<input type=\"submit\" name=\"submit\" value=\"ok\">
</form>";
} else if ($_POST) {
// insert data to tables
if (($_POST["name"] == "") || ($_POST["description"] == "")) {
header("Location: addentry.php");
exit;
}
// connect to database
doDB();
//add to table
$add_master_sql = "INSERT INTO alben (date_added, name, description, date) VALUES (now(), '".$_POST["name"]."', '".$_POST["description"]."', '".$_POST["date"]."')";
$add_master_res = mysqli_query($mysqli, $add_master_sql)
or die(mysqli_error($mysqli));
mysqli_close($mysqli);
$display_block = "<p> Der Datensatz wurde hinzugefügt! </p>";
}
?>
<html>
<head>
</head>
<body>
<?php echo $display_block; ?>
</body>
</html>
-
19.11.08 00:54 #6
- Registriert seit
- Jun 2007
- Ort
- Passau (Niederbayern)
- Beiträge
- 1.394
Joa, bevor ich ins Bett gehe, mache ich hier noch fertig

Dazu nehme ich einfach den Code den du gerade gepostet hast
Der Operator ".=" dient zum Anhängen von Variablen an einen String. Das ist die Kurzform fürPHP-Code:<?php
include("include.php");
if (!$_POST) {
$display_block = "
<form method=\"post\" action=\"".$_SERVER["PHP_SELF"]. "\">
<p><strong>Name</strong><br/>
<input type=\"text\" name=\"name\" size=\"30\" maxlength=\"75\"><br/>
<strong>Beschreibung</strong><br/>
<textarea name=\"description\" cols=\"50\" rows=\"4\" wrap=\"virtual\"></textarea><br>
<strong>Date</strong><br/>
<input type=\"text\" name=\"date\" size=\"20\" maxlength=\"10\"><br/>
</p>
";
// Ab hier jetzt den Code von der extra php-Datei, nur statt dem echo (Ausgabe)
// schreiben wirs in die Variable $display_block.
$display_block .= '<select name="sel_file">';
while (!(($file = readdir($dh)) === false)) {
$display_block .= '<option value="' . $file . '">' . $file . '</option>';
}
$display_block .= '</select>';
// Ab hier wieder den normalen Code :)
$display_block .= "
<input type=\"submit\" name=\"submit\" value=\"ok\">
</form>";
} else if ($_POST) {
// insert data to tables
if (($_POST["name"] == "") || ($_POST["description"] == "")) {
header("Location: addentry.php");
exit;
}
// connect to database
doDB();
//add to table
$add_master_sql = "INSERT INTO alben (date_added, name, description, date) VALUES (now(), '".$_POST["name"]."', '".$_POST["description"]."', '".$_POST["date"]."')";
$add_master_res = mysqli_query($mysqli, $add_master_sql)
or die(mysqli_error($mysqli));
mysqli_close($mysqli);
$display_block = "<p> Der Datensatz wurde hinzugefügt! </p>";
}
?>
<html>
<head>
</head>
<body>
<?php echo $display_block; ?>
</body>
</html>
$a = $a . $b;
Bei deinem Beispiel schreibe also erst das Formular, so wei ich will in die Variable $display_block. Dann wird Stück für Stück in der While-Schleife das Dropdown angehängt. Am Ende der While Schleife mache ich den Dropdown noch fertig, und hänge den Rest noch hinten ran.
Somit hast du am Ende dein $display_block mit dem Formular, welches dein Dropdown enthält.
Bei Fragen bin ich dann morgen Abend wieder erreichbar
Gruß & Gute Nacht
BratkartoffelÜber eine gute Bewertung freut sich jeder ;)
Bitte erledigte Threads als "Erledigt" markieren.
"Though a program be but three lines long, someday it will have to be maintained.''
-- Geoffrey James, "The Tao of Programming"
-
@Bratkartoffel
Großartig! es klappt hervorragend!
Hatte leider jetzt erst Zeit es auszuprobieren!
Vielen Dank für deine Tolle Hilfe!
Gruss
-
@ Bratkartoffel
Hätte da doch noch ein Problem.
Das mit der Datei klappt wunderbar und nun möchte ich noch, dass die dateigröße der ausgewählten datei an die datenbank geschickt wird.
das script zum filesizen habe ich wieder hinbekommen, doch hapert es mit der einbindung.
eine idee?
habe es hinter das readdir script gesteckt und eigentlich auch die werte zum übergeben an die db angeweißen.
HILFE******?
DANKE & GRUSS
PHP-Code:<?php
include("include.php");
if (!$_POST) {
$display_block = "
<form method=\"post\" action=\"".$_SERVER["PHP_SELF"]. "\">
<p><strong>Name</strong><br/>
<input type=\"text\" name=\"name\" size=\"30\" maxlength=\"75\"><br/>
<strong>Beschreibung</strong><br/>
<textarea name=\"description\" cols=\"50\" rows=\"4\" wrap=\"virtual\"></textarea><br>
<strong>Date</strong><br/>
<input type=\"text\" name=\"date\" size=\"20\" maxlength=\"10\"><br/>
</p>
";
// opt box to select file for download
$dirname = "./";
$dh = opendir($dirname);
$display_block .= '<select name="sel_file">';
while (!(($file = readdir($dh)) === false)) {
$display_block .= '<option value="' . $file . '">' . $file . '</option>';
}
$display_block .= '</select>';
// select file end
// size of file
$file_size = "test.zip";
$seize = filesize("$file_size");
$size_kb = $size/1024;
$display_block .= "
<input type=\"submit\" name=\"submit\" value=\"ok\">
</form>";
} else if ($_POST) {
// insert data to tables
if (($_POST["name"] == "") || ($_POST["description"] == "")) {
header("Location: addentry.php");
exit;
}
// connect to database
doDB();
//add to table
$add_master_sql = "INSERT INTO alben (date_added, name, description, date, download, size) VALUES (now(), '".$_POST["name"]."', '".$_POST["description"]."', '".$_POST["date"]."', '".$_POST["sel_file"]."', '".$_POST["size_kb"]."')";
$add_master_res = mysqli_query($mysqli, $add_master_sql)
or die(mysqli_error($mysqli));
mysqli_close($mysqli);
$display_block = "<p> Der Datensatz wurde hinzugefügt! </p>";
}
?>
<html>
<head>
</head>
<body>
<?php echo $display_block; ?>
</body>
</html>
-
20.11.08 07:55 #9
- Registriert seit
- Jun 2007
- Ort
- Passau (Niederbayern)
- Beiträge
- 1.394
Hallo,
würde die Dateigröße nicht extra in das Formular rein schreiben und dann weiter an die Datenbank schicken. Da kann man den Wert zu einfach verändern / manipulieren.
Rufe die Dateigröße lieber erst kurz vor dem abschicken der Query ab.
Also in etwa so:
GrußPHP-Code:<?php
include("include.php");
if (!$_POST) {
$display_block = "
<form method=\"post\" action=\"".$_SERVER["PHP_SELF"]. "\">
<p><strong>Name</strong><br/>
<input type=\"text\" name=\"name\" size=\"30\" maxlength=\"75\"><br/>
<strong>Beschreibung</strong><br/>
<textarea name=\"description\" cols=\"50\" rows=\"4\" wrap=\"virtual\"></textarea><br>
<strong>Date</strong><br/>
<input type=\"text\" name=\"date\" size=\"20\" maxlength=\"10\"><br/>
</p>
";
// opt box to select file for download
$dirname = "./";
$dh = opendir($dirname);
$display_block .= '<select name="sel_file">';
while (!(($file = readdir($dh)) === false)) {
$display_block .= '<option value="' . $file . '">' . $file . '</option>';
}
$display_block .= '</select>';
// select file end
$display_block .= "
<input type=\"submit\" name=\"submit\" value=\"ok\">
</form>";
} else if ($_POST) {
// insert data to tables
if (($_POST["name"] == "") || ($_POST["description"] == "")) {
header("Location: addentry.php");
exit;
}
// size of file
$size = filesize($_POST['sel_file']);
$size_kb = $size/1024;
// connect to database
doDB();
//add to table
$add_master_sql = "INSERT INTO alben (date_added, name, description, date, download, size) VALUES (now(), '".$_POST["name"]."', '".$_POST["description"]."', '".$_POST["date"]."', '".$_POST["sel_file"]."', '".$size_kb."')";
$add_master_res = mysqli_query($mysqli, $add_master_sql)
or die(mysqli_error($mysqli));
mysqli_close($mysqli);
$display_block = "<p> Der Datensatz wurde hinzugefügt! </p>";
}
?>
<html>
<head>
</head>
<body>
<?php echo $display_block; ?>
</body>
</html>
BratkartoffelÜber eine gute Bewertung freut sich jeder ;)
Bitte erledigte Threads als "Erledigt" markieren.
"Though a program be but three lines long, someday it will have to be maintained.''
-- Geoffrey James, "The Tao of Programming"
-
Bratkarftoffel!
Ganz ganz groß! Vielen Dank für deine Hilfe!
Hast du vielleicht auch ncoh ne Idee wie die raeddir function mir nur .zip ausgiebt?
Kann dich leider nicht nochmal bewerten aber deine Hilfe war super!
Danke und Gruss
Ähnliche Themen
-
Problem bei der Übergabe von variablen
Von spikaner im Forum PHPAntworten: 4Letzter Beitrag: 31.08.07, 19:51 -
Problem Excel Dropdownliste und Hyperlinks
Von gmasuch im Forum Office-AnwendungenAntworten: 3Letzter Beitrag: 11.05.07, 12:34 -
Problem bei der Übergabe einer Var.
Von Impi2k im Forum .NET Windows FormsAntworten: 1Letzter Beitrag: 25.04.06, 17:01 -
php übergabe problem
Von MechanU im Forum PHPAntworten: 3Letzter Beitrag: 08.08.05, 11:59 -
Problem mit Variablen-Übergabe in der URL
Von mouCe im Forum PHPAntworten: 4Letzter Beitrag: 18.11.04, 17:03





Zitieren

Login





