Avatar billede fritter25 Nybegynder
07. august 2003 - 21:27 Der er 7 kommentarer og
1 løsning

Fra forms til DB via godkend side

Hejsa

Jeg er ved at oprette en liste over min musik og film. Lige pt. er jeg igang med at lave funktionen til at oprette medier. Dette virker skam også fint nok, men jeg kunne godt tænke mig, at når alle tekstfelter, radiobuttons og checkboxe var udfyldt og man klikker på knappen ok, så sender den en videre til en side hvor man ser det man har indtastet. Er dette iorden vælger man "godkend" og data'er bliver gemt i DB'en. Hvis der er nogle ting som ikke passer, eller man har skrevet forkert, skal man vælge at kunne gå retur til det man indtastede.

Lige nu indtaster man bare tingene og disse bliver så gemt i en MySQL DB.

Er der nogen som kan hjælpe?
Avatar billede Slettet bruger
07. august 2003 - 21:47 #1
Du kan jo altid bare inden du sender informationer til databasen, vise dem på en side. Med et link der hedder ok, og en der hedder tilbage. Er felterne gode nok, sender du det til databasen.

Du kan vel lave noget side indeling.

if(!$_GET[page]) { vis formularen }
if($_GET[page] == vis) { vis de indtastede informationer }
if($_GET[page] == mysql) { indsæt informationer }
Avatar billede Slettet bruger
07. august 2003 - 21:53 #2
Jeg har faktisk selv lavet sådan et system engang.
Istedet for at se om det var rigtig indtastet, lavede jeg istedet en rette funktion. Alt i listen har jo et id. Det brugte jeg til at udskrive dem i en rækkefølge med, og udskrev også idét således at jeg viste hvilken cd det lå på. Var der en fejl, indtastede jeg idét, og kom til samme formular som ved oprettelsen. Der kunne jeg så rette i de forskellige informationer, og derefter opdatede den databasen :)

Det var også en mulighed.
Avatar billede fritter25 Nybegynder
07. august 2003 - 22:02 #3
Jeg er nok mere tændt på den første ide. Dog er jeg ikke helt med på hvordan det skal kodes :

Her et eks. på min kode


Her bruger jeg et rullepanel og checkbokse:

if (isset($_POST['Ok'])) {
    if (isset($_POST['genre'])) {
    $gen = array_sum($_POST['genre']);
    }else{$gen = 0;}
   
    if (isset($_POST['lyd'])) {
    $bin = array_sum($_POST['lyd']);
    }else{$bin = 0;}
---------------------------------------------------
Her noget af forbindelsen:

$db = mysql_connect("127.0.0.1", "root", "");
    mysql_select_db("Film",$db);
   
    mysql_query("INSERT INTO dvd(org_titel, org_undertitel, dk_titel, dk_undertitel,
                instruktoer, skuespiller1, skuespiller2, skuespiller3, skuespiller4,
                skuespiller5, skuespiller6, skuespiller7, skuespiller8, genre, lyd, region,
                undertekster, disk, land, aar)
------------------------------------------------------------
Og her noget af den alm. kode :

<table border="0" width="42%">
  <tr>
    <td width="7%" align="center">1</td>
    <td width="7%" align="center">2</td>
    <td width="7%" align="center">3</td>
    <td width="7%" align="center">4</td>
    <td width="7%" align="center">5</td>
    <td width="7%" align="center">6</td>
  </tr>
  <tr>
    <td width="7%" align="center"><input type="radio" value="1" name="disk[]"></td>
    <td width="7%" align="center"><input type="radio" value="2" name="disk[]"></td>
    <td width="7%" align="center"><input type="radio" value="4" name="disk[]"></td>
    <td width="7%" align="center"><input type="radio" value="8" name="disk[]"></td>
    <td width="7%" align="center"><input type="radio" value="16" name="disk[]"></td>
    <td width="7%" align="center"><input type="radio" value="32" name="disk[]"></td>
  </tr>
</table>


Hvordan kan det laves smartest, det første som blev forslået?
Avatar billede Slettet bruger
07. august 2003 - 22:14 #4
Nu ved jeg ikke hvor mange informationer du har. Men et lille eksempel er her. Dog utestet, men burde virke. Du kan samle informationerne og sende videre til databasen via $_GET[]
-------------------------------------

<?
if(!$_GET[page]) {

  echo "Indtast oplysninger:
   
  <form action=\"?page=vis\" method=\"post\">
  <table border=\"0\" CELLPADDING=\"0\" CELLSPACING=\"0\">
    <tr>
    <td><b>Kategori:</b></td>
    </tr>
    <tr>
    <td><input type=\"text\" name=\"kategori\" style=\"width: 300px;\">
    </tr>
    <tr>
    <td><b>Beskriv:</b></td>
    </tr>
    <tr>
    <td><input type=\"text\" name=\"beskriv\" style=\"width: 300px;\">
    </tr>
    <tr>
    <td> <input type=\"submit\" name=\"addkat\" value=\"Send\">
    </td>
    </tr>
  </table> 
  </form>   

";
 
}

if($_GET[page] == vis) {

$kategori = $_POST[kategori];
$beskriv = $_POST[beskriv];

echo "Det er i kategori <b>$kategori</b> og en kort beskrivelse ville være <b>$beskriv</b>

<a href=\"?page=mysql&kategori=$kategori&beskriv=$beskriv\">Ok - skriv til db</a>

";
}
if($_GET[page] == mysql) {

$kategori = $_GET[kategori];
$beskriv = $_GET[beskriv];

echo "Her indsætter vi <b>$kategori</b> og <b>$beskriv</b>"; }

?>
Avatar billede Slettet bruger
07. august 2003 - 22:15 #5
Du kan så tilpasse det som du vil. Og i mysql delen, indsætter du så bare til din database som du normalt ville have gjort.
Avatar billede fritter25 Nybegynder
07. august 2003 - 22:47 #6
Jo, den så vidst ud til at virke, men er det ikke muligt at lave en mere HTML basseret udgave?
Avatar billede Slettet bruger
08. august 2003 - 07:33 #7
Det er desværre rimeligt vanskeligt at fremstille basseret på html.
Problemet her, er at du gerne vil have dine variabler vist på en blank side, inden der skrives til databasen.

Jeg har dog endnu et foreslag, som nok i virkeligheden er lidt mere simpelt.

<?

if(!$_GET[page]) {
echo "Samme formular som sidste eksempel";
}

if($_GET[page] == vis) {

// Her indsætter du indholdet til din MySQL database, og viser indholdet på siden.
// Med et link der hedder ok, og et der hedder fejl

<a href=\"?page=mysql&gyldig=ok\">Ok - skriv til db</a>
<a href=\"?page=mysql&gyldig=fejl\">FEJL</a>
}

if($_GET[page] == mysql) {
if($_GET[gyldig] == ok) { echo "Du er nu færdig"; }
if($_GET[gyldig] == fejl) { // bliver der meldt fejl, sletter du fra databasen igen. }
}

?>
Avatar billede fritter25 Nybegynder
10. august 2003 - 01:12 #8
Har droppet det lige pt. Men tak for dit forsøg.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester