08. september 2005 - 11:55Der 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?
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>
-- 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. !-)
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?
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
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 !-)
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?
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 :)
-- 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 !-)
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 :)
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!
Synes godt om
Ny brugerNybegynder
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.