/ 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
Form -> Preview -> Insert til database
Fra : Peter


Dato : 09-06-04 12:53

Hej gruppe.

Hvordan får man følgende til at hænge sammen og fungere?:

En form med text felter med tilhørende submit knap.
Ved tryk på submit knappen tjekkes det med en if sætning om felterne er
udfyldt eller tomme. Hvis det er udfyldt skal der vises en preview af
indeholdet af felterne.
Herefter en knap der endeligt indsætter det i databasen.

Hvordan vil man nemmest gøre dette? Jeg har store problemer med hvordan jeg
skal lave de IF sætninger.

form.php:

<form name="skrivnyhed_form" method="post" action="tjek.php">
<input name="overskrift" type="text" value="<? echo $overskrift; ?>" /><br
/>
<textarea name="indhold" cols="60" rows="5"><? echo $indhold; ?></textarea>
<input type="submit" name="submit" value="Ok" />
</form>

tjek.php:

<?php
$overskrift = $_POST['overskrift'];
$indhold = $_POST['indhold'];

if((!$overskrift) || (!$indhold)) {
echo 'Udfyld venligst alle felterne...<br />';
if(!$overskrift){
echo "Skriv venligst en passende overskrift...<br />";
}
if(!$indhold){
echo "Du mangler at skrive selve nyheden!<br />";
}
include 'skrivnyhed_form.php';
exit();
}


Men så kan jeg ikke komme videre.. Hvis felterne er udfyldt skal den echo
$overskrift og $indhold som preview. Hvis dette godkendes skal den skrive
det til databasen. Kan det gøres på samme side?

Håber I kan hjælpe.
mvh
Pete



 
 
Anders Lund (09-06-2004)
Kommentar
Fra : Anders Lund


Dato : 09-06-04 13:30

Peter wrote:
> if((!$overskrift) || (!$indhold)) {
> echo 'Udfyld venligst alle felterne...<br />';
> if(!$overskrift){
> echo "Skriv venligst en passende overskrift...<br />";
> }
> if(!$indhold){
> echo "Du mangler at skrive selve nyheden!<br />";
> }
> include 'skrivnyhed_form.php';
> exit();
> }
>
>
> Men så kan jeg ikke komme videre.. Hvis felterne er udfyldt skal den echo
> $overskrift og $indhold som preview. Hvis dette godkendes skal den skrive
> det til databasen.

Du tilføjer vel bare en "else":

if((!$overskrift) || (!$indhold)) {
echo 'Udfyld venligst alle felterne...<br />';
if(!$overskrift){
echo "Skriv venligst en passende overskrift...<br />";
}
if(!$indhold){
echo "Du mangler at skrive selve nyheden!<br />";
}
include 'skrivnyhed_form.php';
exit();
}
else {
echo 'Du skrev...<br />';
echo 'Overskrift: ' . $overskrift . '<br />';
echo 'Nyhed: ' . $indhold . '<br />';
echo '<form med OK knap>';
}

> Kan det gøres på samme side?

Du kan submitte siden til sig selv og evt. putte en ekstra parametre i
action (action="tjek.php?submit=yes") i din form på din preview side.

Så kan du indkapsle overstående kode ind i endnu en if-sætning:

if($_GET[submit] == "yes") {
update_db();
}
else {
show_preview();
}

Evt. lade "submit=yes" være en hidden værdi i din form og så bruge post
i stedet...

--
Anders Lund - spam2004@andersonline.dk

Peter (09-06-2004)
Kommentar
Fra : Peter


Dato : 09-06-04 17:45


"Anders Lund" <spam2004@andersonline.dk> wrote in message
news:40c702d9$0$3047$14726298@news.sunsite.dk...
[snip]
> Evt. lade "submit=yes" være en hidden værdi i din form og så bruge post
> i stedet...

Hej Anders og tak for din hjælp.

Men hvordan vil du gøre ovenstående så indholdet ikke godkendes via linket
?submit=yes?


Her er hele koden:

<?php
$overskrift = $_POST['overskrift'];
$indhold = $_POST['indhold'];


if($_GET[submit] == "yes") {

/// Insert til database

} else {


if((!$overskrift) || (!$indhold)) {
echo 'Udfyld venligst alle felterne...<br />';
if(!$overskrift){
echo "Skriv venligst en passende overskrift...<br />";
}
if(!$indhold){
echo "Du mangler at skrive selve nyheden!<br />";
}
include 'skrivnyhed_form.php';
exit();

} else {

echo "
<h1>$overskrift</h1><br />
<p>$indhold<p><br /><br /><br /><hr>
<form name='skrivnyhed_form' method='post'
action='skrivnyhed_tjek.php?submit=yes'>
<input type='hidden' name='overskrift' type='text' value='$overskrift' /><br
/>
<input type='hidden' name='indhold' type='text' value='$indhold' />
<input type='button' value='Tilbage' onClick='history.go(-1)' />
<input type='submit' name='submit' value='Godkend' />
</form>";
}
}

?>


Det hele virker som det skal. Men kan det gøres 'pænere' / 'bedre'?

Mvh
Pete



Anders Lund (09-06-2004)
Kommentar
Fra : Anders Lund


Dato : 09-06-04 21:41

Peter wrote:
> Men hvordan vil du gøre ovenstående så indholdet ikke godkendes via linket
> ?submit=yes?

Jeg tror at jeg har gjort det med følgende kode, som stort set er det
samme som du har lavet - bare byttet lidt rundt på IF-sætningerne...

<?php
$overskrift = $_POST['overskrift'];
$indhold = $_POST['indhold'];

if (($overskrift) && ($indhold)) {
   if ($_GET[submit] == "yes") {
      // / Insert til database
   } else {
      echo "<h1>" . $overskrift . "</h1><br />
      <p>" . $indhold . "<p><br /><br /><br />
      <hr>
      <form name='skrivnyhed_form' method='post'
action='skrivnyhed_tjek.php?submit=yes'>
      <input type='hidden' name='overskrift' type='text' value='" .
$overskrift . "' /><br />
      <input type='hidden' name='indhold' type='text' value='" . $indhold .
"' / >
      <input type='button' value='Tilbage' onClick='history.go(-1)' />
      <input type ='submit' name='submit' value='Godkend' />
      </form>";
   }
} else {
   echo 'Udfyld venligst alle felterne...<br />';
   if (!$overskrift) {
      echo "Skriv venligst en passende overskrift . . . < br / > ";
   }
   if (!$indhold) {
      echo "Du mangler at skrive selve nyheden! < br / > ";
   }
   include 'skrivnyhed_form.php';
   exit();
}

?>


> Det hele virker som det skal. Men kan det gøres 'pænere' / 'bedre'?

Sikkert, jeg er ikke den store kodehaj...

--
Anders Lund - spam2004@andersonline.dk

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