Gegevens in pagina

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Martijn Cornips

Martijn Cornips

18/12/2007 14:14:00
Quote Anchor link
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:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<? 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 ;)
 
PHP hulp

PHP hulp

22/12/2024 12:38:17
 
Ronald Vesterink

Ronald Vesterink

18/12/2007 14:22:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
<? 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.
Gewijzigd op 01/01/1970 01:00:00 door Ronald Vesterink
 
Robert Deiman

Robert Deiman

18/12/2007 14:22:00
Quote Anchor link
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:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?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.
Gewijzigd op 01/01/1970 01:00:00 door Robert Deiman
 
Martijn Cornips

Martijn Cornips

18/12/2007 14:58:00
Quote Anchor link
Ik ben veel gaan zoeken en heb uiteindelijk de volgende code kunnen gebruiken
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?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?
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
$maandag1=$_POST['maandag1'];

Of is daar een snellere manier voor?

Btw, voorbeeld: http://www.cornips.nl/schema.php
 
- SanThe -

- SanThe -

18/12/2007 15:54:00
Quote Anchor link
Cornips schreef op 18.12.2007 14:58:
moet ik dan handmatig elke keer de volgende regel aanmaken?
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
$maandag1=$_POST['maandag1'];

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

Martijn Cornips

18/12/2007 16:00:00
Quote Anchor link
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.
Gewijzigd op 01/01/1970 01:00:00 door Martijn Cornips
 
- SanThe -

- SanThe -

18/12/2007 16:06:00
Quote Anchor link
Wat is er mis met de var $_POST['maandag1']?
 
- wes  -

- wes -

18/12/2007 16:07:00
Quote Anchor link
$maandag1=$_POST['maandag1'];

in dit geval kopieer je gewoon data

zinloos dus

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

Martijn Cornips

18/12/2007 16:10:00
Quote Anchor link
ohja, en k gebruik hem toch maar één keer. Thanx voor de tip.
 
Robert Deiman

Robert Deiman

18/12/2007 16:16:00
Quote Anchor link
En elke dag in 1 keer weergeven kan zo:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?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
 
Martijn Cornips

Martijn Cornips

18/12/2007 17:02:00
Quote Anchor link
Dankjulliewel!
Ik heb wat ik wilde en m'n probleem is opgelost.
Thanx!
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.