Warnung: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php (Zeile 58)
Dropdown mit Textdatei [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr

- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
Dropdown mit Textdatei


 
xandas1
05-12-2008, 08:20 
 
Hallo Leute,


if(isset($_SESSION['login']) && $_SESSION['login'] == 1) {

$data = array();
$userdatei = fopen("user.txt","r");
while(!feof($userdatei))
{
$zeile = fgets($userdatei,1024);
$data[] = $zeile;
}
fclose($userdatei);
echo '<select name="pro">';
foreach($data as $a=>$b){
echo '<option value="'.$b.'">'.$b.'</option>';
}
echo '</select>';

Aus einer Textdatei wird hier eine Dropdown ausgelesen.
Inhalt der Textdatei sind einfach nur Namen.

Ich möchte jetzt z.B. sagen:


echo "Sie haben den Namen $pro ausgewählt"

Also der ausgewählte Name der Textdatei soll wo ausgegeben werden. Ich weiß aber nicht wie ich den anspreche. Habe da alle Variablen durchprobiert. Aber das funktioniert nicht ganz. Was muss ich da tun?

Probiert hab ichs dann jetzt so mit einem Affenformular:


<form action="bla.php" method="post">
<select name="mydropdown">
<option value="1">Wert 1</option>
<option>Wert 2</option>
</select>
</form>




<?php
echo 'Sie haben ' . $_POST['mydropdown'] . ' gewählt';
?>

Und so möchte ich es eben auch mit dem obigen Beispiel, also das alles mit einer .txt Datei machen, verstehe aber garnicht wie ich da machen soll??


Danke!
Alexander

 
onemorenerd
05-12-2008, 08:41 
 
Ich sehe kein form-Tag im ersten Codeschnipsel.
Was kommt denn an? var_dump($_POST)!

Kennst du file()?

 
xandas1
05-12-2008, 09:21 
 
Kann das so was werden? bei var_dump wird nur "pro" ausgegeben.


<?
if(isset($_SESSION['login']) && $_SESSION['login'] == 1) {

$data = array();
$userdatei = fopen("user.txt","r");
while(!feof($userdatei))
{
$zeile = fgets($userdatei,1024);
$data[] = $zeile;
}
fclose($userdatei);
echo '<form action="" method="post" name="drop">';
echo '<select name="pro">';
foreach($data as $a=>$b){
echo '<option value="'.$b.'">'.$b.'</option>';
}
echo '</select>';
echo '</form>';

$pro = $_POST['drop'];
?>

 
onemorenerd
05-12-2008, 09:36 
 
Nein, so wird es nichts. Der Name der Form taucht in $_POST niemals auf. Weder als Key noch als Value.
Schau dir mal das an, Zeile für Zeile.
<?php

if (isset($_POST['pro'])) {
var_dump($_POST['pro']);
exit;
}

$data = file('user.txt');

echo '<form action="" method="post">';
echo '<select name="pro">';
foreach ($data as $b) {
echo '<option value="'.$b.'">'.$b.'</option>';
}
echo '</select>';
echo '</form>';

?>

 
xandas1
05-12-2008, 10:01 
 
Danke, aber es geht noch nicht. Mit var_dump wird nichts ausgegeben... warum?


if (isset($_POST['pro'])) {
var_dump($_POST['pro']);
exit;
}

$data = file('user.txt');

echo '<form action="" method="post">';
echo '<select name="pro">';
foreach ($data as $b) {
echo '<option value="'.$b.'">'.$b.'</option>';
}
echo '</select>';
echo '</form>';

echo $_POST['pro'];

 
onemorenerd
05-12-2008, 10:04 
 
Dir ist klar, dass die Daten erst nach dem Abschicken des Formulars in $_POST stehen?! Falls du dich jetzt fragst, wie du Abschicken kannst: Mit einem Submit-Button. ;)

 
xandas1
05-12-2008, 10:07 
 
Ja :D klar das ich mit nem Button absende, aber ich will nicht extra für die Dropdown einen Button. Ich habe zwei Buttons, einer heißt Arbeitsanfang und einer Arbeitsende, wie kann ich jetzt sagen das er bei beiden angeschickt wird?


$user = $_SESSION["user"];


if(isset($_POST['but1']) == "Arbeitsanfang")

{

$title = "new";
$filename = $title.".htm";
@$zeit = date("d.n.Y, G:i:s");
$text = "Anfang, $zeit, $user, $pro<br>";
$fp = fopen($filename,"a+");
fputs($fp,$text);
fclose($fp);


}

 
onemorenerd
05-12-2008, 10:24 
 
Wo hast du einen Button, ich sehe keinen? Ist er im selben Formular wie das Dropdown?

 
xandas1
05-12-2008, 10:29 
 
<form name='zeit' method='post' action=''>
<input type='submit' name='but1' value='Arbeitsanfang'>
</form>

<?
$user = $_SESSION["user"];


if(isset($_POST['but1']) == "Arbeitsanfang")

{

$title = "new";
$filename = $title.".htm";
@$zeit = date("d.n.Y, G:i:s");
$text = "Anfang, $zeit, $user, $pro<br>";
$fp = fopen($filename,"a+");
fputs($fp,$text);
fclose($fp);


}

?>




<form name='zeit1' method='post' action=''>
<input type='submit' name='but2' value='Arbeitsende'>
</form>

<?


if(isset($_POST['but2']) == "Arbeitsende")

{

$title = "new";
$filename = $title.".htm";
@$zeit = date("d.n.Y, G:i:s");
$text = "Ende, $zeit, $user,<br>";
$fp = fopen($filename,"a+");
fputs($fp,$text);
fclose($fp);


}


?>


Das sind meine Buttons, und jeder der Buttons soll wenn sie gedrückt werden etwas in eine .txt schreiben. d.h. wenn man in der Dropdown was wählt, soll die Variable hineingschrieben werden, und eintragen... weißt du was ich meine?

 
onemorenerd
05-12-2008, 10:51 
 
Ein Submit-Button schickt nur die eigene Form ab!


Falsch:
<form><input type="submit" /></form>
<form><select name="pro">...</select></form

Richtig:
<form>
<input type="submit" />
<select name="pro">...</select>
</form



Das sind Grundlagen! :rtfm:


Alle Zeitangaben in WEZ +2. Es ist jetzt 21:17 Uhr.