Avatar billede firestone Nybegynder
04. marts 2008 - 11:55 Der er 15 kommentarer og
1 løsning

En form med funktioner og muligheder i samme file

Jeg vil lave et lille bruger system, alt sammen i en fil med funktioner.

Simpelt kunne adduser form se sådan her ud
Men hvordan får jeg min kode til at kunne håndtere adduser deluser og show user?

Jeg har selv en funktion til mysql databasen, men det er selve delen ved at checke de her elementer som jeg ikke får bugt med.

noget if (!$REQUEST['Submit']) {


<?php
function adduser() {
?>
<form action="<?php echo $_SERVER["PHP_SELF"]; ?>" method="post">
Name<br />
<input type="text" name="brugernavn"><br />
Phonenumber<br />
<input type="phonenumber" name="phonenumber"><br />
Region<br />
<input type="region" name="region"><br />
<input type="submit" value="Add User">
</form>
<?php
}
?>
Avatar billede kjeldsted Novice
04. marts 2008 - 12:03 #1
Hvad er det helt præcist du vil?
Avatar billede firestone Nybegynder
04. marts 2008 - 12:22 #2
hvis header = &Submit=adduser
hop til adduser og lad mig skrive navn/tlf/region
hvis header = &Submit=deluser
giv mig en tom user box hvor jeg kan skrive navnet på den jeg vil slette
hvis header = &Submit=changeuser
giv mig en der ligner adduser bare med udfyldte felter
ellers bare vis en side hvor jeg kan vælge adduser deluser changeuser
Avatar billede kjeldsted Novice
04. marts 2008 - 12:38 #3
Hm. Ved ikke om jeg er helt med, men er det sådan noget du søger:

if($_GET['adduser']==true)
  {
  echo "Form med deluser";
  }
if($_GET['deluser']==true)
  {
  echo "Form med changeuser";
  }
if($_GET['changeuser']==true)
  {
  echo "Form med adduser";
  }

???
Avatar billede firestone Nybegynder
04. marts 2008 - 13:01 #4
<html>
  <head>
    <title>User:</title>                           
  </head>
<?php


if (!$_GET['Submit']) {     
    showuser;
} elseif ($_GET['Submit'] == "adduser") {   
    adduser();
} elseif ($_GET['Submit'] == "deluser") {   
    deluser();
} elseif ($_GET['Submit'] == "edituser") {   
    edituser();
}

function adduser() {
?>

<form action="<?php echo $_SERVER["PHP_SELF"]; ?>" method="post">
Name<br />
<input type="text" name="brugernavn"><br />
Phonenumber<br />
<input type="phonenumber" name="phonenumber"><br />
Region<br />
<input type="region" name="region"><br />
<input type="submit" value="Add User">
</form>


<?php
}
function showuser() {
echo 'Showuser';
}

function deluser() {
echo 'deluser';
}

function edituser() {
echo 'edituser';
}

?>
</body>
</html>

Sådan her mener jeg, men den fungere ikke
Avatar billede nielle Nybegynder
04. marts 2008 - 13:03 #5
Siden formen er med:

method="post"

skal du bruge $_POST[...] i stedet for $_GET[...].
Avatar billede firestone Nybegynder
04. marts 2008 - 13:09 #6
Hvis jeg sætter et &Submit=adduser efter min url for at simulere valget får jeg bare :
The webpage cannot be found: 404 fejl
Avatar billede nielle Nybegynder
04. marts 2008 - 13:13 #7
Ved ikke lige hvofor du får den - bortset fra at det skal være ? i stedet for &.

MEN du har forresten heller ikke noget felt i din form som har *navnet* "submit" - du har et felt af *typen* "submit", men det er altså noget andet.

PS: Du bør heller ikke bruge navnet "submit" noget sted. Hald det noget andet.
Avatar billede firestone Nybegynder
04. marts 2008 - 13:25 #8
Så ser den sådan her ud, og nu viser den "showuser" funktionen som den skal når do=

Men nu uanset hvad jeg vælger sker der ikke noget:

<html>
  <head>
    <title>User:</title>                           
  </head>
<?php


if (!$_POST['do']) {         
    showuser();
} elseif ($_POST['do'] == "adduser") {     
    adduser();
} elseif ($_POST['do'] == "deluser") {     
    deluser();
} elseif ($_POST['do'] == "edituser") {     
    edituser();
}

function adduser() {
?>

<form action="<?php echo $_SERVER["PHP_SELF"]; ?>" method="post">
Name<br />
<input type="text" name="brugernavn"><br />
Phonenumber<br />
<input type="phonenumber" name="phonenumber"><br />
Region<br />
<input type="region" name="region"><br />
<input type="adduser" value="Add User">     
</form>


<?php
}
function showuser() {
echo 'Showuser';
echo '<br><tr><td>';
  echo ("<a href=\"" . $_SERVER['PHP_SELF'] . "?do=adduser\">Add New User");
  echo '</a></td><br>';
  echo ("<a href=\"" . $_SERVER['PHP_SELF'] . "?do=edituser\">Edit User");       
  echo '</a></td><br>';
  echo '<td>';
  echo ("<a href=\"" . $_SERVER['PHP_SELF'] . "?do=deluser\">Delete User");       
  echo '</a></td></tr>';
}

function deluser() {
echo 'deluser';
}

function edituser() {
echo 'edituser';
}

?>
</body>
</html>
Avatar billede kjeldsted Novice
04. marts 2008 - 13:35 #9
Hvordan ser den fulde URL ud?
Avatar billede nielle Nybegynder
04. marts 2008 - 13:36 #10
Der et heller ikke noget som hedder:

<input type="adduser" value="Add User">

Det skal stadig være en submit:

<input type="submit" value="Add User">

Den må bare ikke *også* have name="submit"
Avatar billede kjeldsted Novice
04. marts 2008 - 13:48 #11
Det samme problem hér:

<input type="phonenumber" name="phonenumber"><br />
Region<br />
<input type="region" name="region"><br />
<input type="adduser" value="Add User">

type=phonenumber ovs. er ikke gyldige HTML koder.
Avatar billede dkfire Nybegynder
04. marts 2008 - 13:51 #12
Der er heller ikke noget som hedder type="region" eller type="phonenumber".
Tror du skal rette dem til type="text"
Avatar billede firestone Nybegynder
04. marts 2008 - 14:07 #13
det er nu gjort, men det er ikke det grundliggende problem i min kode.. Den når aldrig ned til dem, så det må være:

if (!$_POST['do']) {         
    showuser();
} elseif ($_POST['do'] == "adduser") {     
    adduser();
} elseif ($_POST['do'] == "deluser") {     
    deluser();
} elseif ($_POST['do'] == "edituser") {     
    edituser();
}
delen her som fejler?
Avatar billede kjeldsted Novice
04. marts 2008 - 14:11 #14
Hvordan ser hele din URL ud?
Avatar billede dkfire Nybegynder
04. marts 2008 - 14:19 #15
En $_POST variabel kommer oftest fra en form.
En $_GET variabel kommer oftest fra adresselinjen, dvs URL.

Jeg tror du skal ændre din $_POST['do'] til $_GET['do'], da du sætter do via dine links.
Avatar billede firestone Nybegynder
04. marts 2008 - 16:06 #16
prøver noget helt andet, fra bunden af for at identificere hvor jeg fejler.
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