Avatar billede xbobby Nybegynder
30. juli 2003 - 13:35 Der er 11 kommentarer og
1 løsning

Kalde en funktion fra en knap i en forms

Jeg vil godt kalde en function når trykker på en knap i en forms, men jeg kan ikke få det til at fungere. Jeg smider lige et eksempel på.

Hvad er det som jeg gør forkert?

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
    <title>Untitled</title>
<?
function Go()
{
echo "DET VIRKER SGU";
}
?>
   
</head>

<body>
<?
echo "<form method='post' action='$_SERVER[PHP_SELF]'><br>";
echo "<form action = 'url' method = 'post'>";
echo "<INPUT TYPE=Button VALUE=' Vis artikel ' onClick='Go()'>";
echo "</form>";
?>
</body>
</html>
Avatar billede medions Nybegynder
30. juli 2003 - 13:36 #1
Det kan du ikke!

//>Rune
Avatar billede medions Nybegynder
30. juli 2003 - 13:37 #2
Det kan du ikke med PHP, det er du nødt til at gøre med JavaScript eller VBScript!

Dog kan du lave en onclickevent der har en document.location og så tilføjer du en QueryString som så detecter en PHP funktion og så skriver teksten!

//>Rune
Avatar billede zeta Nybegynder
30. juli 2003 - 14:04 #3
simpelt faktisk.. :) men.. i din <form> skal du bare sætte en action.. altså din form ska se sådan her ud :)

<?
echo "<form method='post' action='$_SERVER[PHP_SELF]?action=test'><br>";
echo "<INPUT TYPE=Button VALUE=' Vis artikel '>";
echo "</form>";
?>

og så smider du bare
if($action = test){

function_navn();

}

i toppen.. så sku det da gerne virke :)
Avatar billede xbobby Nybegynder
30. juli 2003 - 15:05 #4
Til Zeta
Ganske smart men jeg får følgende fejlmeddelse, som jeg ikke lige kan gennemskue, så jeg smider lige kode på:
Notice: Undefined variable: action in c:\inetpub\wwwroot\nytest\knap_funktion.php on line 12
Avatar billede xbobby Nybegynder
30. juli 2003 - 15:06 #5
Her kommer koden:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
    <title>Untitled</title>
<?
function Go()
{
echo "DET VIRKER SGU";
}
?>
<?
if($action == "test"){
Go();
}
?>
</head>
<body>
<?
echo "<form method='post' action='$_SERVER[PHP_SELF]?action=test'><br>";
echo "<INPUT TYPE=Button VALUE=' Vis artikel '>";
echo "</form>";
?>
</body>
</html>

Hvad er det der er galt, har jeg misforstået noget?
Avatar billede eky Nybegynder
31. juli 2003 - 09:26 #6
Prøv at ændre til flg.
if($_POST['action'] == "test"){
Go();
}
Avatar billede xbobby Nybegynder
31. juli 2003 - 13:27 #7
Der er 15 point til zeta og 15 point eky, når vi stopper her, da det ikke var helt så enkelt et spørgsmål jeg stillede, som jeg først troede. Og jeg vil godt udlove 3o point mere til den der kan komme med en meget mere enkel løsning end den som jeg er kommet frem til, men som kan det samme :-)

Jeg har arbejdet videre med de ting I har foreslået og mikset det lidt sammen og gået væk fra get metoden ?action=test' og bruger i stedet en hidden file, så skulle der ikke være nogen konflikter mellem GET og POST.

Problemet er bare at noget der skulle være enkelt bliver rimeligt omfangsrigt, da jeg også ønsker en knap der kan fjerne teksten igen.

Spørgsmålet er: Hvordan kan det gøres mere enkelt, samtidig med at jeg opnår det samme?

<html>
<head>
    <title>SE TEKST ELLER FJERNE TEKST N&Aring;R DER TRYKKES P&Aring; KNAPPEN</title>
   
<?
function SeTekstKnap() {
    print "<form method='post' action='$_SERVER[PHP_SELF]'><br>";
    print "<input type='hidden' name='action' value='seTekst'><br>";
    print "<input type='submit' value='Se tekst'>\n";
    print "</form>\n";
}

function FjernTekstKnap() {
    print "<form method='post' action='$_SERVER[PHP_SELF]'><br>";
    print "<input type='hidden' name='action' value='fjernTekst'><br>";
    print "<input type='submit' value='Fjern tekst'>\n";
    print "</form>\n";
}

function teksten() {
    print "CBXCBXZCJXZHHCXHJKXZCHZXCHZXCHHZXHCHZXHCHZXHCHZHXHC <BR>";
    print "CBXCBXZCJXZHHCXHJKXZCHZXCHZXCHHZXHCHZXHCHZXHCHZHXHC <BR>";
    print "CBXCBXZCJXZHHCXHJKXZCHZXCHZXCHHZXHCHZXHCHZXHCHZHXHC <BR>";
    print "CBXCBXZCJXZHHCXHJKXZCHZXCHZXCHHZXHCHZXHCHZXHCHZHXHC <BR>";
}
?>
</head>

<body>
<?
if (isset($_POST['action']) && $_POST['action'] == "seTekst")
    {
        FjernTekstKnap();
          teksten();
    }
    elseif (isset($_POST['action']) && $_POST['action'] == "fjernTekst")
    {
        SeTekstKnap();
    }
    else
    {
        SeTekstKnap();
}
?>
</body>
</html>
Avatar billede xbobby Nybegynder
04. august 2003 - 10:37 #8
Da der ikke sker mere her, så lukker jeg spørgsmålet.

Tak for hjælpen til jer alle specielt zeta og eky :-)

//xbobby
Avatar billede medions Nybegynder
04. august 2003 - 10:39 #9
Så venligst afslut spm'et...

//>Rune
Avatar billede xbobby Nybegynder
04. august 2003 - 10:42 #10
Jeg troede at jeg kunne udevide antallet af point under 'Avanceret', men så avanceret er den heller ikke, så jeg sender de 15 pont til Zeta.

Til eky
Har du et foreslag til hvordan vi kringler de sidste 15 point til dig?
Avatar billede eky Nybegynder
04. august 2003 - 10:46 #11
Opret et nyt spørgsmål med teksten: Points til eky.
Så svarer jeg på den;-))
Avatar billede kenp Novice
05. august 2003 - 13:56 #12
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