04. juli 2007 - 23:57
Der er
19 kommentarer og 1 løsning
Sammenlign to variabler og spørg ved tryk på submit
Hejsa Jeg vil gerne kunne sammenligne 2 variabler, og hvis de er ens, spørge brugeren om han nu også er sikker på at ville submitte formen. Hvis ikke skal den jo bare blive stående, så han kan rette den ene variabel. Hvordan går man det?
Annonceindlæg tema
Offentlig digitalisering
Fra effektivisering til digital suverænitet. Hvordan skaber det offentlige en digital fremtid med AI, sikkerhed og kontrol i centrum?
Det havde jeg godt luret :-) Det går mere på, hvordan jeg får en lille dialogboks frem med "er du sikker på at du vil submitte formen selvom varA = varB?"
Med javascript, ikke PHP. Jeg antager at felterne hedder felt1 og felt2: <script type="text/javascript"> function erOk(what) { if (what.felt1.value == what.felt2.value) { return confirm("Er du sikker?"); } return true; } </script> dit form-tag skal så have en onsubmit: <form method="post" onsubmit="return erOk(this)">
Det virker fint i FireFox - men ikke i IE7. Hvorfor ikke?
Det lader til at den ikke får variblerne med og derfor gør den ikke noget!
Hmm prøv: <script type="text/javascript"> function erOk() { f = document.getElementById("minform"); if (f.felt1.value == f.felt2.value) { return confirm("Er du sikker?"); } return true; } </script> <form id="minform" method="post" onsubmit="return erOk()">
Eller prøv at ændre den oprindelige form og mit første forsøg til: <form method="post" onsubmit="return erOk(this.form)">
Har prøvet med det andet forsøg uden held - virker stadig ikke. Hvad skal ændres i selve scriptet i forhold til at bruge this.form?
Den her virker altså fint for mig i både IE7 og FF2: <html><head><title>test</title> <script type="text/javascript"> function erOk(what) { if (what.felt1.value == what.felt2.value) { return confirm("Sikker?"); } return true; } </script> </head><body> <form method="post" onsubmit="return erOk(this)"> <input type="text" name="felt1" id="felt1"> <input type="text" name="felt2" id="felt2"> <input type="submit" name="sbmit" value="Ok!"> </form> </body></html>
09. juli 2007 - 11:29
#10
Det er vildt mærkeligt! Hos mig virker det kun i FF. <script type="text/javascript"> function erOk() { f = document.getElementById("mainform"); if (f.IPROD.value == f.IPROD_ORIGINAL.value) <form name="mainform" id="mainform" method="POST" action="insert.php" onSubmit="return erOk(this.form)" OnLoad="document.mainform.IPROD.focus();"> <input type="text" name="IPROD" id="IPROD" size="10" value="<?php echo strtoupper($IPROD) ?>" tabindex="1"> <input type="hidden" name="IPROD_ORIGINAL" id="IPROD_ORIGINAL" size="10" value="<?php echo $HTTP_GET_VARS[IPROD] ?>"> <input type="submit" value="Save" name="submit" tabindex="100"> { return confirm("Er du sikker?"); } return true; } </script>
09. juli 2007 - 11:30
#11
hov - her kommer det i rigtig rækkefølge! <script type="text/javascript"> function erOk() { f = document.getElementById("mainform"); if (f.IPROD.value == f.IPROD_ORIGINAL.value) { return confirm("Er du sikker?"); } return true; } </script> <form name="mainform" id="mainform" method="POST" action="insert.php" onSubmit="return erOk(this.form)" OnLoad="document.mainform.IPROD.focus();"> <input type="text" name="IPROD" id="IPROD" size="10" value="<?php echo strtoupper($IPROD) ?>" tabindex="1"> <input type="hidden" name="IPROD_ORIGINAL" id="IPROD_ORIGINAL" size="10" value="<?php echo $HTTP_GET_VARS[IPROD] ?>"> <input type="submit" value="Save" name="submit" tabindex="100">
09. juli 2007 - 11:33
#12
Tester du via en webserver eller ved at åbne en HTML-fil direkte? I sidste tilfælde kunne det nemlig være at aktivt indhold er slået fra - check i så fald dine Internetindstillinger. *går igen*
09. juli 2007 - 15:16
#13
Det viste sig at FF selv trimmede en af variablerne - det gjorde IE ikke! Så nu virker det! Men hvordan får jeg så følgende PHP-kode mast ind i IF-sætningen: <?php //// Check if selected design already exists! $sql = "SELECT DISTINCT IPROD FROM V6BDKFL1.IIM where iclas in ('BF', 'BS', 'BO', 'BU') AND ICOND in ('00','04','08')"; $conn = odbc_connect("ASDK101","",""); $res = odbc_exec($conn,$sql); $i=0; $EXISTS = 'FALSE'; $DESIGN_ARRAY = array(); while(odbc_fetch_array($res)){ $DESIGN_ARRAY[$i] = odbc_result($res,1); $i++; } if (in_array($IPROD,$DESIGN_ARRAY)) {$EXISTS = 'TRUE';} Echo "<br>".$EXISTS."<br>"; ?>
10. juli 2007 - 12:45
#14
coderdk - smid et svar - jeg har fået det hele til at virke! function erOk() { <?php //// Check if selected design already exists! $sql = "SELECT DISTINCT IPROD FROM V6BDKFL1.IIM where iclas in ('BF', 'BS', 'BO', 'BU') AND ICOND in ('00','04','08')"; $conn = odbc_connect("ASDK101","",""); $res = odbc_exec($conn,$sql); $i=0; $EXISTS = 'FALSE'; $DESIGN_ARRAY = array(); while(odbc_fetch_array($res)){ $DESIGN_ARRAY[$i] = odbc_result($res,1); $i++; } if (in_array($_GET[IPROD],$DESIGN_ARRAY)) {$EXISTS = 'TRUE';} ?> EXIST = "<?php echo $EXISTS ?>"; IPROD = "<?php echo rtrim($_GET[IPROD]) ?>"; if (EXIST == 'TRUE') { return confirm("The design number already exists!"); } return true; } </script>
10. juli 2007 - 12:53
#15
ok :)
10. juli 2007 - 14:09
#16
Troede jeg havde knækket nødden, men tror desværre jeg er løbet ind i et uoverstigeligt problem! Værdien i feltet IPROD bliver sat når siden loades. Den kan derefter ændres, men det slår ikke igennem når jeg kalder functionen med onsubmit. Der tager den fat i den originale værdi... øvøvøvøvøv.....
10. juli 2007 - 14:42
#17
Lad os se noget kode! For det kan sagtens lade sig gøre!
10. juli 2007 - 15:20
#18
Okay - her først selve javascript funktionen: <script type="text/javascript"> function erOk() { <?php //// Check if selected design already exists! $sql = "SELECT DISTINCT IPROD FROM V6BDKFL1.IIM where iclas in ('BF', 'BS', 'BO', 'BU') AND ICOND in ('00','04','08')"; $conn = odbc_connect("ASDK101","",""); $res = odbc_exec($conn,$sql); $i=0; $EXISTS = 'FALSE'; $DESIGN_ARRAY = array(); while(odbc_fetch_array($res)){ $DESIGN_ARRAY[$i] = odbc_result($res,1); $i++; } if (in_array($_GET[IPRODX],$DESIGN_ARRAY)) {$EXISTS = 'TRUE';} ?> EXIST = "<?php echo $EXISTS ?>"; IPROD = "<?php echo rtrim($_GET[IPRODX]) ?>"; alert (IPROD) if (EXIST == 'TRUE') { return confirm("The design number already exists!"); } return true; } </script> Så formen: <form name="mainform" id="mainform" method="POST" action="insert.php" onSubmit="return erOk(this.mainform)" OnLoad="document.mainform.IPROD.focus();"> <snip en masse kode> feltet: <input name="IPROD" type="text" id="IPROD" tabindex="1" value="" size="10" maxlength="9"> Problemet er, at når jeg trykker på submit, for jeg ikke IPROD med, med den nye værdi fra feltet - op i funktionen!
10. juli 2007 - 16:12
#19
Umiddelbart synes jeg ikke det giver vildt meget mening - Jeg har forsøgt at lave det jeg tror du gerne vil: <script type="text/javascript"> function erOk(what) { <?php //// Check if selected design already exists! $sql = "SELECT DISTINCT IPROD FROM V6BDKFL1.IIM where iclas in ('BF', 'BS', 'BO', 'BU') AND ICOND in ('00','04','08')"; $conn = odbc_connect("ASDK101","",""); $res = odbc_exec($conn,$sql); $rows = array(); while($row = odbc_fetch_array($res)){ $rows[] = $row['IPROD']; } $rows = implode(",", $rows); echo "\nexisting = new Array($rows);\n" if (existing.indexOf(what.IPOD) != -1) { return confirm("The design number already exists!"); } } return true; } </script> Så formen: <form name="mainform" id="mainform" method="POST" action="insert.php" onSubmit="return erOk(this)" OnLoad="document.mainform.IPROD.focus();">
10. juli 2007 - 16:12
#20
Bah her: <script type="text/javascript"> function erOk(what) { <?php //// Check if selected design already exists! $sql = "SELECT DISTINCT IPROD FROM V6BDKFL1.IIM where iclas in ('BF', 'BS', 'BO', 'BU') AND ICOND in ('00','04','08')"; $conn = odbc_connect("ASDK101","",""); $res = odbc_exec($conn,$sql); $rows = array(); while($row = odbc_fetch_array($res)){ $rows[] = $row['IPROD']; } $rows = implode(",", $rows); echo "\nexisting = new Array($rows);\n" ?> if (existing.indexOf(what.IPOD) != -1) { return confirm("The design number already exists!"); } } return true; } </script> og så formen: <form name="mainform" id="mainform" method="POST" action="insert.php" onSubmit="return erOk(this)" OnLoad="document.mainform.IPROD.focus();">
Vi tilbyder markedets bedste kurser inden for webudvikling