/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
Bevare tekst i form
Fra : Ole Olsen


Dato : 24-04-04 02:58


Jeg har bikset en form og noget php-kode sammen. Selv om det måske
ikke er særlig smart, virker det efter hensigten. Der er dog én ting
jeg ikke kan finde ud af, nemlig hvordan man kan beholde en tekst i
text-feltet hvis brugeren glemmer at vælge en radioknap. Jeg vil være
meget taknemlig for hjælp til at løse dette problem.

Med venlig hilsen, Ole Olsen

Her kommer koden:

$denneside=$_SERVER['PHP_SELF'];

if (empty($_GET['valg']) OR empty($_GET['sporgsmal'])) {
   echo "<FORM ACTION=\"$denneside\" METHOD=\"get\"><br>\n";
   echo "<INPUT TYPE=\"radio\" NAME=\"valg\" VALUE=\"1\">1<BR>\n";
   echo "<INPUT TYPE=\"radio\" NAME=\"valg\" VALUE=\"2\">2<BR>\n";
   echo "Skriv dit spørgsmål i feltet herunder:<BR\n>";
   echo "<TEXTAREA NAME=\"sporgsmal\" COLS=\"50\"
ROWS=\"8\"\n></TEXTAREA><br>\n";
   echo "<INPUT TYPE=\"submit\" NAME=\"submitknap\"
VALUE=\"indsend\">";
   echo "</FORM>";
   $forstegang=1;
}
else{
# --------- både valg og spørgsmål er givet -------
   echo $_GET['valg'];
   echo $_GET['sporgsmal'];
}

if (empty($_GET['valg']) AND $forstegang==1){
   echo "DER SKAL VÆLGES 1 ELLER 2<br>";
}

if (empty($_GET['sporgsmal']) AND $forstegang==1) {
   echo "DER ER INGEN TEKST AT SENDE<br>";
}

 
 
Daniel Overby Hansen (24-04-2004)
Kommentar
Fra : Daniel Overby Hansen


Dato : 24-04-04 11:00

> Jeg har bikset en form og noget php-kode sammen. Selv om det måske
> ikke er særlig smart, virker det efter hensigten. Der er dog én ting
> jeg ikke kan finde ud af, nemlig hvordan man kan beholde en tekst i
> text-feltet hvis brugeren glemmer at vælge en radioknap. Jeg vil være
> meget taknemlig for hjælp til at løse dette problem.

Teksten skal stå mellem <textarea> og </textarea>.

F.eks.

if(isset($_GET["textarea_name"])) //Du kan evt og læse syntakscheck her
$temp = $_GET["textarea_name"];
else
$temp = "";

..
..
..

<textarea ......><? echo $temp; ?></textarea>

- Daniel

Per Thomsen (24-04-2004)
Kommentar
Fra : Per Thomsen


Dato : 24-04-04 11:11

Ole Olsen wrote:
> Jeg har bikset en form og noget php-kode sammen. Selv om det måske
> ikke er særlig smart, virker det efter hensigten. Der er dog én ting
> jeg ikke kan finde ud af, nemlig hvordan man kan beholde en tekst i
> text-feltet hvis brugeren glemmer at vælge en radioknap. Jeg vil være
> meget taknemlig for hjælp til at løse dette problem.

Hej Ole

De korrekt indtastede data er jo tilstede i dit script, så det er bare
at udskrive formularen igen, men denne gang med de aktuelle data.

Det kan med fordel gøres ved at skrive en funktion til at generere
formularen. Funktionen kan tage data med som input, og så kan du kalde
den med tomme strenge første gang den kaldes.

Det kunne f.eks. se således ud:

<?php

$denneSide = $_SERVER['PHP_SELF'];
$requestMethod = $_SERVER['REQUEST_METHOD'];

$valg = isset($_GET['valg']) ? $_GET['valg'] : '';
$spoergsmaal = isset($_GET['spoergsmaal']) ? $_GET['spoergsmaal'] : '';
$submitted = isset($_GET['submitknap']);


function createForm($side, $valg=0, $spoergsmaal='') {
$form = "<FORM ACTION=\"$side\" METHOD=\"get\"><br>\n";
   $form.= "<INPUT TYPE=\"radio\" NAME=\"valg\" VALUE=\"1\"".($valg==1?"
checked":"").">1<BR>\n";
   $form.= "<INPUT TYPE=\"radio\" NAME=\"valg\" VALUE=\"2\"".($valg==2?"
checked":"").">2<BR>\n";
   $form.= "Skriv dit spørgsmål i feltet herunder:<BR\n>";
   $form.= "<TEXTAREA NAME=\"spoergsmaal\" COLS=\"50\"
ROWS=\"8\"\n>$spoergsmaal</TEXTAREA><br>\n";
   $form.= "<INPUT TYPE=\"submit\" NAME=\"submitknap\" VALUE=\"indsend\">";
   $form.= "</FORM>";
   return $form;
}


if( !$submitted ) {
echo createForm($denneSide);
} else {
$fejlBeskeder = array();;
if( empty($valg) ) {
array_push($fejlBeskeder, 'Der skal vælges 1 eller 2.');
}
if( empty($spoergsmaal) ) {
array_push($fejlBeskeder, 'Der er ingen tekst at sende.');
}
if( count($fejlBeskeder)>0 ) {
echo createForm($denneSide, $valg, $spoergsmaal);
echo "Der var fejl i
indtasningen:<UL><LI>".implode("</LI><LI>", $fejlBeskeder)."</LI></UL>";

} else {
echo "<strong>Valg:</strong>$valg<BR>\n";
echo "<strong>Spørgsmål:</strong>$spoergsmaal<BR>\n";
}
}
?>

MVH Per Thomsen,
http://www.pert.dk/

Ole Olsen (24-04-2004)
Kommentar
Fra : Ole Olsen


Dato : 24-04-04 22:34

On Sat, 24 Apr 2004 12:11:01 +0200, Per Thomsen <pert@pert.dk> wrote:


>Det kunne f.eks. se således ud:

Det fungerer perfekt. Jeg kan ikke helt gennemskue hvordan det virker,
men nu vil jeg sætte mig til at nærlæse koden. Tusind tak for
indsatsen

OO


Søg
Reklame
Statistik
Spørgsmål : 177501
Tips : 31968
Nyheder : 719565
Indlæg : 6408527
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste