Avatar billede drc_666 Nybegynder
14. december 2005 - 02:05 Der er 18 kommentarer og
1 løsning

confirmbox og checkbox

i min form har jeg en checkbox, når den er "checked" og man clicker på den, vil jeg gerne have at der komme en confirmbox op og hvis man vælger ok, submitter man formen automatisk, og hvis man vælger annullere fortsætter checkboxen med at være "checked"
Avatar billede thesurfer Nybegynder
14. december 2005 - 09:26 #1
Eksempel:

<form name="minform" ...>
...
<input type="checkbox" onclick="conf(this)" ...>
...
</form>

<script type="text/JavaScript">
function conf(c)
{
    if (c.checked == true) {
        if ( window.confirm("Vil du submitte formen nu?") ) {
            // submit form og andet hvis du vil:
            document.minform.submit();
        }
    }
}
</script>

/theSurfer
Avatar billede thesurfer Nybegynder
14. december 2005 - 09:31 #2
PS: "..." betyder "noget kode her", hvis du har noget..

/theSurfer
Avatar billede drc_666 Nybegynder
14. december 2005 - 13:41 #3
ved at sætte ! ind ved "if (!c.checked == true) {"
kommer boxen op på det rigtige tidspunkt, men så sker der ikke noget når man clicker på ok sendes formen ikke og når man clicker på annulere er der ikke noget kryds i feltet igen (krydset forsvinder inden boxen kommer frem, mangler noget kode som kan afkrydse felter igen efter annulering).

her er min kode indtil vidre




<script type="text/JavaScript">
function conf(c)
{
    if (!c.checked == true) {
        if ( window.confirm("Vil du submitte formen nu?") ) {
            // submit form og andet hvis du vil:
            document.vogn[3].submit();
        }
    }
}
</script>


<FORM name="vogn[3]" METHOD=POST ACTION="vareliste.php?offset=&input=&option=">
    <INPUT TYPE="hidden" name="gem_webshop_vægt_og_note" value="true">
    <input type="hidden" name="vare_nr" value="3">

    <td bgcolor="rgb(255,250,235)">

    <!-- OMTALTE FELT  -->
    <INPUT id="webshop" onclick="conf(this)"  TYPE="checkbox" name ="webshop" checked="checked">
    <INPUT TYPE="submit" name="gem" value="gem"></td>

</FORM>
Avatar billede thesurfer Nybegynder
14. december 2005 - 14:55 #4
Ahhh.. der skal først ske noget, hvis checkboxen allerede er checket, når man klikker på det :-)

Jeg har lavet det modsatte :-)


Her er et eksempel:

<form name="minform" ...>
...
<input type="checkbox" onclick="conf(this)" checked ...>
...
</form>

<script type="text/JavaScript">
function conf(c)
{
    if (!c.checked == true) {
        if ( window.confirm("Vil du submitte formen nu?") ) {
            // submit form og andet hvis du vil:
            document.minform.submit();
        } else {
                    c.checked = true;
                }
    }
}
</script>

/theSurfer
Avatar billede drc_666 Nybegynder
15. december 2005 - 02:00 #5
nu kommer der godt nok et afkryds ved annullering, men den sender ikke formen
Avatar billede drc_666 Nybegynder
15. december 2005 - 02:11 #6
... når man trykker på ok
Avatar billede drc_666 Nybegynder
15. december 2005 - 02:23 #7
nu fik jeg den til at virke så den sender formen, men når den bliver sent er feltet checked, hvad går der galdt

ny kode

function conf(c)
{
    if (!c.checked == true) {
        if ( window.confirm("Vil du submitte formen nu?") ) {
            // submit form og andet hvis du vil:
       
            document.vogn<?print($yy);?>.submit();
        } else {
                    c.checked = true;
                }
    }
}
</script>
<FORM id="vogn<?print($yy);?>" name="vogn<?print($yy);?>" METHOD=POST ACTION="vareliste.php?offset=<?print($_REQUEST[offset]);?>&input=<? print($_REQUEST[input]);?>&option=<? print($_REQUEST[option]);?>">

<INPUT id="webshop" onclick="conf(this)"  TYPE="checkbox" name ="webshop" checked="checked">
Avatar billede thesurfer Nybegynder
15. december 2005 - 02:26 #8
Det er fordi du har kaldt din form "vogn[3]".. når du så bruger document.vogn[3], tror den at "vogn" er en array, og prøver derfor på at bruge det der står på "3" (dvs, plads 2, da arrayen starter ved 0)..

Denne kode virker fint (jeg har erstattet "vogn[3]" med "vogn_3"):

<script type="text/JavaScript">
function conf(c)
{
    if (!c.checked == true) {
        if ( window.confirm("Vil du submitte formen nu?") ) {
            // submit form og andet hvis du vil:
            document.vogn_3.submit();
                } else {
                    c.checked = true;
                }
    }
}
</script>


<FORM name="vogn_3" METHOD=POST ACTION="vareliste.php?offset=&input=&option=">
    <INPUT TYPE="hidden" name="gem_webshop_vægt_og_note" value="true">
    <input type="hidden" name="vare_nr" value="3">

    <td bgcolor="rgb(255,250,235)">

    <!-- OMTALTE FELT  -->
    <INPUT id="webshop" onclick="conf(this)"  TYPE="checkbox" name ="webshop" checked="checked">
    <INPUT TYPE="submit" name="gem" value="gem"></td>

</FORM>

/theSurfer
Avatar billede thesurfer Nybegynder
15. december 2005 - 02:29 #9
Denne her vil altid check'e checkboxen:  checked="checked"

Du kan bare bruge (til checkboxen):

<input ... <?php if ($_POST['webshop']) echo ' checked="checked"' ?>>

Eller hvordan man nu gør det i PHP.. :-)

/theSurfer
Avatar billede thesurfer Nybegynder
15. december 2005 - 02:31 #10
Muligvis "if (isset($_POST['webshop']))" i stedet..

/theSurfer
Avatar billede drc_666 Nybegynder
15. december 2005 - 02:37 #11
jeg havde skåret lidt i kode så du for lige det heke hvis det hjælper

KODE


<FORM id="vogn_<?print($yy);?>" name="vogn_<?print($yy);?>" METHOD=POST ACTION="vareliste.php?offset=<?print($_REQUEST[offset]);?>&input=<? print($_REQUEST[input]);?>&option=<? print($_REQUEST[option]);?>">
<INPUT TYPE="hidden" name="gem_webshop_vægt_og_note" value="true">
<input type="hidden" name="vare_nr" value="<? print "$key->vare_nr";?>">


<?
if($key->webshop == "0") {
?>
<td bgcolor="<? print $color?>"


><INPUT id="webshop" onclick="this.form.submit();" size="4" TYPE="checkbox" name ="webshop" onchange="this.form.submit()"></td>

<?
}    else {

?>


<td bgcolor="<? print $color?>">

<script type="text/JavaScript">
function conf(c)
{
if (!c.checked == true) {
if ( window.confirm("Vil du submitte formen nu?") ) {
// submit form og andet hvis du vil:

document.vogn_<?print($yy);?>.submit();
} else {
c.checked = true;
}
}
}
</script>
<INPUT id="webshop" onclick="conf(this)"  TYPE="checkbox" name ="webshop" checked="checked">


<TEXTAREA onblur="this.form.submit();" NAME="web_beskrivelse" ROWS="" COLS=""><?print $key->web_beskrivelse;?></TEXTAREA></td>

<?

}

?>

<td bgcolor="<? print $color?>"><INPUT onblur="this.form.submit();" size="4" TYPE="text" name ="vægt" value="<? print "$key->vægt";?>"  onchange="this.form.submit()"></td>   

<td bgcolor="<? print $color?>"><TEXTAREA NAME="note" ROWS="" COLS=""  onblur="this.form.submit();"><? print "$key->note";?></TEXTAREA><INPUT TYPE="submit" name="gem" value="gem"></td>


</FORM>
Avatar billede thesurfer Nybegynder
15. december 2005 - 02:42 #12
Jeg tror at følgende er forkert: if($key->webshop == "0") {

Prøv at erstatte det med: if (!isset($_POST['webshop'])) {

Begge linier betyder:
"Hvis der ikke er noget i variablen "webshop", som sendes via submit, så ..."

/theSurfer
Avatar billede drc_666 Nybegynder
15. december 2005 - 02:43 #13
det skal også siges at form bliver vist 10 hvor $yy bliver størrer hvergang
Avatar billede thesurfer Nybegynder
15. december 2005 - 02:44 #14
hmm.. ikke helt..

linien  if($key->webshop == "0") { betyder

Hvis indeholdet af feltet "webshop" er lig "0" (en strengværdi der er nul), Så...
Hvilket jeg tror er forkert..

/theSurfer
Avatar billede thesurfer Nybegynder
15. december 2005 - 02:45 #15
Man kan kun submitte 1 form ad gangen.. og serveren behandler kun 1 form ad gangen.. så det er lige meget hvor mange forms der er..

Den vigtige er den der submittes...

/theSurfer
Avatar billede drc_666 Nybegynder
15. december 2005 - 02:52 #16
fik det til at virke da jeg fjerne "" rundt 0

if($key->webshop == "0"
bliv til
if($key->webshop == 0

takker mange gang læg et svar og få nogle vel fortjente point
Avatar billede drc_666 Nybegynder
15. december 2005 - 02:52 #17
så ikke du have svaret
Avatar billede thesurfer Nybegynder
15. december 2005 - 02:52 #18
Det gjorde jeg allerede i 15/12-2005 02:26:42 :-)

/theSurfer
Avatar billede thesurfer Nybegynder
15. december 2005 - 02:52 #19
Ahh.. nåede ikke at se dit indlæg :-)

Takker for points :-)

/theSurfer
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