Ik ben nog heel erg beginner met PHP, dus je mag me uitlachen om mijn vraag ;)

Maar ik heb een pagina met allerlei textarea's. Wat ik wil is als mensen die invullen en op ok drukken, ze een schema krijgen waarin die ingevulde gegevens verschijnen.

Dat is heel simpel, inderdaad. Maar op een of andere manier werkt het niet.
Ik heb nu de code:


<? if($action=='send'){
echo $mssg;
} 
else{ ?>
<form action="<?=$_SERVER['PHP_SELF'];?> " method="post">
<input type="hidden" name="action" value="send">
<textarea rows="10" cols="37" name="mssg"><? echo htmlspecialchars(stripslashes($mssg)); ?></textarea><input type="submit" value="Verstuur">
</form>
<? } ?>


Als ik naar de pagina ga, zie ik wel een invoerveld enzo, maar als ik wat invul en het verzend, krijg ik gewoon weer een leeg textarea.

Kan iemand me helpen?
Dankje alvast voor het lezen ;)

<? if($action=='send'){
echo ("".nl2br(htmlspecialchars(stripslashes($mssg)))."");
echo("<br><br><textarea rows='10' cols='37' name='mssg'>".htmlspecialchars(stripslashes($mssg))."</textarea>");
} 
else{ ?>
<form action="<? $_SERVER['PHP_SELF'];?> " method="post">
<input type="hidden" name="action" value="send">
<textarea rows="10" cols="37" name="mssg"><? echo htmlspecialchars(stripslashes($mssg)); ?></textarea><input type="submit" value="Verstuur">
</form>
<? } ?>


dit zou moeten werken.
Probeer geen shorttags te gebruiken in je code dat werkt niet altijd. Bovendien: Je moet wel de zogenaamde Superglobals gebruiken om de geposte gegevens weer te geven:

<?php
$postvalue = '';
if($_SERVER['REQUEST_METHOD']=='POST'){
	$postvalue =  htmlspecialchars(stripslashes($_POST['mssg']));
	echo $postvalue;
	} 
else{ 
	?>
	<form action="<?php echo $_SERVER['PHP_SELF']; ?> " method="post">
	<input type="hidden" name="action" value="send">
	<textarea rows="10" cols="37" name="mssg">
	<?php 
	echo $postvalue; 
	?>
	</textarea><input type="submit" value="Verstuur">
	</form>
	<?php 
	} 
?> 


Verder zie ook de manier waarop de code weer wordt gegeven, dit is veel leesbaarder op deze manier.
Ik ben veel gaan zoeken en heb uiteindelijk de volgende code kunnen gebruiken
<?php
$maandag1=$_POST['maandag1'];
$dinsdag1=$_POST['dinsdag1'];
$page=$_SERVER['PHP_SELF'];

if(isset($_POST['aan'])){
echo("Maandag: $maandag1<br>\n");
echo("Dinsdag: $dinsdag1<br><br>\n");
echo("<a href=\"$page\">Opnieuw</a>");
}else{
?>
<form method="post" action="<? echo("$page"); ?>">
<input type="hidden" name="aan" value="1" />
Maandag: <textarea name="maandag1"></textarea><br>
Dinsdag: <textarea name="dinsdag1"></textarea><br>
<input type="submit" name="Submit" value="Submit">
</form>
<?php
}
?>

Deze code werkt precies zoals ik het wil, en naar mijn idee is het vrij simpel:D
Maar nu ik toch aan het woord ben: als ik straks maandag1 t/m vrijdag1 tot maandag10 t/m vrijdag10 aan textarea's heb, moet ik dan handmatig elke keer de volgende regel aanmaken?

$maandag1=$_POST['maandag1'];

Of is daar een snellere manier voor?

Btw, voorbeeld: http://www.cornips.nl/schema.php
Cornips schreef op 18.12.2007 14:58
moet ik dan handmatig elke keer de volgende regel aanmaken?

$maandag1=$_POST['maandag1'];


Een var overschrijven in een andere var zonder er iets mee te doen is slechts geheugenverspilling.
SanThe schreef op 18.12.2007 15:54

Een var overschrijven in een andere var zonder er iets mee te doen is slechts geheugenverspilling.

Maar ik moet toch eerst de variabelen toewijzen, anders weet hij niet dat als ik het heb over $maandag1 dat hij dan de value van veld 'maandag1' moet ophalen.
Wat is er mis met de var $_POST['maandag1']?
$maandag1=$_POST['maandag1'];

in dit geval kopieer je gewoon data

zinloos dus

echo $_POST['maandag1']; werkt ook prima bijnv

ohja, en k gebruik hem toch maar één keer. Thanx voor de tip.
En elke dag in 1 keer weergeven kan zo:


<?php
    foreach($_POST as $key => $value){
        echo '$_POST[\''.$key.'\'] heeft als waarde: '.$value;
        }
?>

Lekker kort en alle post waarden worden weergegeven.


Kijk ook eens hier voor variabele variabelen, waarmee je ook vrij eenvoudig (en met weinig code) alle dagen van 1 t/m 10 uit kan lezen.

Klik 1
Klik 2
Klik 3
Dankjulliewel!
Ik heb wat ik wilde en m'n probleem is opgelost.
Thanx!

Reageren