Avatar billede hmann Nybegynder
08. september 2005 - 11:55 Der er 19 kommentarer og
2 løsninger

Form med submit og link-knap?

Hejsa!

Hvordan laver jeg en form med 2 knapper sådan at den ene knap (Ja) skal submitte formen - mens den anden knap (Nej) skal sende brugeren videre til en anden side (en link-knap) ?

lyder simpelt men synes det driller lidt..

Skal man lave Nej-knappen med <button> tag'et eller hvordan?

mvh
HMann
Avatar billede fennec Nybegynder
08. september 2005 - 12:02 #1
<input type="Submit" value="Ja">
<input type="Button" value="Nej" onClick="location='enURL.htm';">
Avatar billede tofte Juniormester
08. september 2005 - 12:02 #2
Du kan lave noget ala
<html>
<body>
<form action="http://www.eksperten.dk">
<input type="submit">
<input type="button" onClick="window.location.href = 'http://www.jubii.dk';">
</form>
</body>
<html>
Avatar billede tofte Juniormester
08. september 2005 - 12:03 #3
jaa - 3 sek er ikke meget ;-)
Avatar billede hmann Nybegynder
08. september 2005 - 12:33 #4
tjah det ser rigtigt nok ud.. også sådan jeg selv havde forsøg mig..

det skal lige siges at formen bliver dannet via php.. ser sådan ud:

echo '<form>';
.
.
echo '<input type="submit" value="Ja" />';
echo '<input type="button" value="Nej" onClick="location='url.php';" />';
echo '</form>';

hører måske til i php-kategorien, men bliver ved at få denne fejl når jeg bruger ovenstående:

Parse error: parse error, unexpected T_STRING, expecting ',' or ';'

hvad har jeg overset.. fejlen er i linien med "input type=button"
Avatar billede hmann Nybegynder
08. september 2005 - 12:35 #5
nåå jeg har glemt at escape mine enkeltpinger \'
Avatar billede hmann Nybegynder
08. september 2005 - 12:36 #6
tofte> smid et svar - så får i 15 points hver..
Avatar billede roenving Novice
08. september 2005 - 12:41 #7
Hvorfor echoer du hele formen, kan du ikke nøjes med at bruge php, hvis du skal noget:

?>

<form action="<?php echo formTarget; ?>" method="post">
.
.
<input type="Submit" value="Ja">
<input type="Button" value="Nej" onClick="location='enURL.htm';return false;">
</form>
<?php

//anden kode

-- og return false-koden er nødvendig, da browseren muligvis kan nå at fyre begge requests af, hvis den betragter alle knapper i en form som submit-knapper (bl.a. Geckoerne: Mozilla, FireFox, Netscape osv. !-)
Avatar billede hmann Nybegynder
08. september 2005 - 12:52 #8
roenving> tak for den med return false.. den har fatisk drillet lidt - bruger nemlig FF!

grunden til jeg echo'er hele formen, er fordi det er midt i en kæmpe php-fil hvor html-formene kreeres på baggrund af en masse betingelser, som jeg henter via sockets på en server.. tror det vil være for besværligt at blande det hele sammen i små stykker af html og php?
Avatar billede roenving Novice
08. september 2005 - 12:58 #9
Er det ikke omvendt: At det er for besværligt at skulle udskrive vha. af echo, og så skal du ovenikøbet escape gengangere af tekst-afgrænsere (gåseøjne og eller apostroffer !-)

-- og du kan glimrende:

?>

-- et stykke html-kode, hvor der stort set ikke benyttes variabler fra php

<?php
if(noget){
?>

-- et stykke html-kode, hvor der stort set ikke benyttes variabler fra php

<?php
}else{
?>

-- et stykke html-kode, hvor der stort set ikke benyttes variabler fra php

<?php
}

//osv.
Avatar billede hmann Nybegynder
08. september 2005 - 12:58 #10
et lille ekstra spørgsmål (smider selvfølgelig flere points i puljen):

har man på nogen måde mulighed for at kalde en php-function i sin onClick istedet for en URL og hvis ja hvordan?
Avatar billede hmann Nybegynder
08. september 2005 - 13:01 #11
roenving> ok cool!

var lidt i tvivl om man kunne afbryde php'en midt i fx:

<?php
if(noget){
?>

for så har du helt ret - så vil jeg ændre koden! (har overtaget projektet fra en anden som har valgt at køre php hele vejen igennem og echo alt html)
Avatar billede roenving Novice
08. september 2005 - 13:01 #12
Nej, for php afvikles jo på serveren, og det har javascript ingen mulighed for at kommunikere direkte med scripts der ...

-- det eneste du kan via javascript i events, er at sende http-requests, f.eks. ved at submitte en form eller på anden måde afsende en url ved at ændre location eller src !-)
Avatar billede hmann Nybegynder
08. september 2005 - 13:02 #13
roenving> ok, overså lige din "hvor der stort set ikke benyttes variabler fra php"..
det bliver brugt en smule, men de kan vil ligeledes indsættes med <?php  ?> omkring?
Avatar billede hmann Nybegynder
08. september 2005 - 13:04 #14
ang at kalde php-funktioner fra javascript - selvfølgelig kan man ikke det.. der giver jo sig selv.. mig der sover lidt lige nu ;-)
Avatar billede olebole Juniormester
08. september 2005 - 13:17 #15
<ole>

Men jeg vil nu tillade mig at kalde roenvings forslag (08/09-2005 12:58:02) for skidt kodestil  :)

Generelt bør man holde sin PHP- og HTML-kode adskilt. Dvs. skrive funktioner, der returnerer HTML-strenge, som man så henter på formen:
  <div><?=myFunc()?></div>
- nede i HTML-koden.

Ellers løber man bl.a. ofte panden mod 'cannot send header' fejl  :)

/mvh
</bole>
Avatar billede hmann Nybegynder
08. september 2005 - 15:09 #16
alle kommentarene -> smid et svar, så deler jeg points ud og lukker...
tak for hjælpen alle - det kører bar nu :)
Avatar billede roenving Novice
08. september 2005 - 20:06 #17
Oki '-)

-- og jeg skal da tilføje, at oles ord om dårlig kodestil kan have relevans, men ikke nødvendigvis har det, for et let kompliceret stykke php (eller asp !-) -kode, som bare skal skelne mellem nogle simple variabler f.eks. i form af get-parametre kan simplest opbygges med direkte implementering af html-kode !o]

-- mens det overhovedet ikke er tilfældet i komplicerede php/asp-strukturer, hvor det netop er dårlig kodestil at skabe en 20-400 linjers html-kode via een lang 10.000 linjers script-fil ...

-- der skal man netop benytte sig af funktioner eller includes, som indeholder de relevante kodestumper !-)
Avatar billede roenving Novice
08. september 2005 - 20:07 #18
PS. Ole, vi snakkede vist ikke om Eksperten, vel ?-)
Avatar billede hmann Nybegynder
09. september 2005 - 08:06 #19
der var ikke så mange points at dele ud af, så fennex får 2/3 for at svare på mit egentlige spørgsmål og resten til roenving for de meget brugbare kommentare.. håber det er okay, ellers råber i op :)
Avatar billede roenving Novice
11. september 2005 - 09:33 #20
Det'r helt iorden, tak for point ;~}

-- hvis du havde haft lyst til det, kunne du også have valgt at afsætte flere point (under Funktioner oppe til venstre i åbne spørgsmål !-)
Avatar billede hmann Nybegynder
12. september 2005 - 08:19 #21
nå der var den - jeg ledte nemlig, da jeg nok mente før at have set at man kunne afsætte flere points - det vil jeg huske til en anden gang!
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