hey, alvast iedereen prettige feestdagen gewenst

zoals de topic-titel al doet vermoeden wil ik tekst uit een txt file laten echo'n, op zich lukt dat wel, maar als ik iedere regel in een inputveld wil laten weergeven loopt het fout

de code


<?php
ini_set('display_errors', 1);
error_reporting(E_ALL); //lelijke foutjes weergeven
?>
<?php
	$yourFile = "test.txt";
	$voegtoe = "\n";
	$lines = file($yourFile);
	if($_SERVER['REQUEST_METHOD'] == "POST")
	{
		$fs = fopen($yourFile, "w");
		fwrite($fs, $_POST['naam1'].$voegtoe);
		fwrite($fs, $_POST['naam2'].$voegtoe);
		fwrite($fs, $_POST['naam3'].$voegtoe);
		fclose($fs);
		echo "<br /><font color=green>De wijzigingen werden verwerkt en bewaard.</font><br />";
	}
	foreach ($lines as $line_num => $line) 
	{
		echo "Word #<b>{$line_num}</b> : " . htmlspecialchars($line) . "<br />\n";
	}
?>
<form method="POST">
<b><u>Maak hier de aanpassingen</u></b><br>
<br>
button 1:<input type="text" name="naam1" value="<?php echo "$line"; ?>">
<br>
button 2:<input type="text" name="naam2" value="<?php echo "$line"; ?>">
<br>
button 3:<input type="text" name="naam3" value="<?php echo "$line"; ?>">
<br>
<input type="submit" value="Bewaar" name="submit">
</form>


als ik in het eerste inputveld test1 typ, in het 2de test2 en in het 3de test3 en vervolgens op bewaar klik...

zoals je ziet worden word#0, word#1,... enz goed weergegeven onder elkaar, maar in de inputvelden krijg ik alleen het laatste woord van de txt file (word#2) in dit geval, te zien
$line bevat aan het einde van de loop de inhoud van de laatst toegekende waarde. In dit geval dus test3. Als jij na die loop $line wil gaan gebruiken, zal daar dus altijd de waarde in zitten van de laatste loop. Als je de boel in een array zet en dan opnieuw de boel afloopt kun je wel een mooi formuliertje creƫren, ik vraag me alleen af of het niet handiger is meteen een formulier weer te geven, en niet eerst de regels apart.
hey,

bedankt voor de tips.. ik heb zowat al het mogelijke geprobeerd maar ofwel krijg ik een error, ofwel nog steeds hetzelfde resultaat..


...
	foreach ($lines as $line) 
    {
        echo "$line <br />\n";
    }
?>
<form method="POST">
<b><u>Maak hier de aanpassingen</u></b><br>
<br>
button 1:<input type="text" name="naam1" value="<?php echo "$line"; ?>">
<br>
button 2:<input type="text" name="naam2" value="<?php echo "$line"; ?>">
<br>
button 3:<input type="text" name="naam3" value="<?php echo "$line"; ?>">
<br>
<input type="submit" value="Bewaar" name="submit">
</form>
...


(rest van de code is hetzelfe gebleven)

alvast dank

De waarde van je formuliervelden klopt niet, maar daar heb je niets aan veranderd? Dan is het niet zo gek dat het nog steeds niet klopt.

Op dit moment echo jij bij elk formulierveld de variabele $line. Die variabele bevat echter bij alle velden steeds dezelfde waarde, en wel die van de laatste keer dan de foreach loop doorlopen is.

De makkelijkste aanpassing waardoor het zal werken is door de values zo toe te kennen:

<form method="POST">
<b><u>Maak hier de aanpassingen</u></b><br>
<br>
button 1:<input type="text" name="naam1" value="<?php echo $lines[0]; ?>">
<br>
button 2:<input type="text" name="naam2" value="<?php echo $lines[1]; ?>">
<br>
button 3:<input type="text" name="naam3" value="<?php echo $lines[2]; ?>">
<br>
<input type="submit" value="Bewaar" name="submit">
</form>

Maar houd in de gaten dat als de inhoud van je txt file nu maar even van volgorde of samenstelling verandert, dit al niet meer klopt...
Heel bedankt, dit werkt eindelijk.. ik snap wel wat je bedoeld, maar de waarden die in het inputveld worden ingetypt zijn de namen die je kan kiezen voor de buttons van een flash-menu

nogmaals bedankt

Reageren