Avatar billede frida Nybegynder
07. juli 2003 - 17:37 Der er 35 kommentarer og
1 løsning

nyt vindue ved action

Man kan melde sig på maillisten og indtaster sit navn og sin email. Trykker på knappen 'send' og action er en ny side, som indsætter oplysningerne i databasen. Tilligemed skrives kære (det indtastede navn) Tak for osv osv.
Det virker fint.
Jeg vil gerne at min action-side åbner i et nyt vindue, som jeg selv definerer.
Jeg har prøvet dette:
            <form name="form" onSubmit="return afsendelse(this)" action="java script:aaben('mailingliste.asp',300,200)" method="get">
Vinduet åbner med den rette side, MEN nu går der ingen oplysninger i databasen.
Hvad skal jeg gøre?

frida
Avatar billede thesurfer Nybegynder
07. juli 2003 - 17:44 #1
måske er det fordi det er en nyt vindue.. det kan være at data fra formen ikke bliver sendt med..

prøv at skrive response.write request.form("felt-navn-her").. se hvad der kommer ud af det (hvis der altså er noget..)

en anden metode er at sende data med i url'en..

  mailingliste.asp?navn=Hans%20Hansen&email=hans@hansen.dk

strNavn = request.querystring("navn")
strEmail = request.querystring("email")

i databasen bruger du så:

tilføj kode, (navn, email) (strNavn, strEmail)..

Insert into tabelnavn (navn, email) values(strNavn, strEmail)
Avatar billede frida Nybegynder
07. juli 2003 - 18:00 #2
Jeg forstår ikke rigtigt.
Min actionside: mailingliste.asp virker perfekt, når bare jeg ikke åbner den i et nyt vindue?!
Jeg kan jo godt åbne den med target="_blank", men så får jeg værktøjslinie og hele dynen med - og det er det jeg vil undgå.
Kan det jeg gerne vil ikke lade sig gøre?
Avatar billede thesurfer Nybegynder
07. juli 2003 - 18:03 #3
du kan selv bestemme hvordan vinduet skal se ud, vha javascript..

har du prøvet response.write?
Avatar billede frida Nybegynder
07. juli 2003 - 18:14 #4
Ja - response.write giver ikke noget resultat.
Men problemet er jo også, at det indtastede ikke går i databasen, når jeg smider min mailingliste.asp ind i et nyt vindue (via javascript) Vinduet åbner fint uden værktøjslinie og det hele og i den størrelse jeg be'r om. Det er ikke noget problem.
Problemet er at jeg vil begge dele - både lægge i databasen og hente navnet retur - og det skal foregå i et nyt vindue.
Som det er nu kan jeg enten sende data til databasen og få navnet retur til afsenderen - eller åbne et nyt vindue.
Avatar billede thesurfer Nybegynder
07. juli 2003 - 18:22 #5
et forslag: brug url'en til at sende data..

eks.:

navn: Hans Hansen
email: hans@hansen.dk
--


* åben det nye vindue med url'en "mailingliste.asp?navn=hans%20hansen&email=hans@hansen.dk

* aflæs url

strNavn = request.querystring("navn")
strEmail = request.querystring("email")

* opdater database

Insert into tabelnavn (navn, email) values(strNavn, strEmail)

og opdater database

* det gamle vindue ændres til:

  side.asp?navn=Hans&Hansen

  response.write "Hej " & request.querystring("navn") "."

    resultat:  Hej Hans Hansen.

* luk vindue det nye vindue
Avatar billede frida Nybegynder
07. juli 2003 - 18:25 #6
fint nok - jeg arbejder på sagen og vender tilbage
Avatar billede thesurfer Nybegynder
07. juli 2003 - 18:31 #7
whoops..

rettelse:

* det gamle vindue ændres til:

  side.asp?navn=Hans%20Hansen  (%20 = mellemrum)

  response.write "Hej " & request.querystring("navn") & "." (husk & tegn mellem tekst og string-kode)
Avatar billede thesurfer Nybegynder
07. juli 2003 - 18:40 #8
jeg går ud fra at du bruger request.form("felt-navn") til at aflæse navn og email fra formen?

hmm.. skulle der ikke have stået method="post" i stedet for method="get" ?
Avatar billede frida Nybegynder
07. juli 2003 - 18:54 #9
Altså - jeg er ingen superørn - men nu viser jeg dig lige, hvad det er jeg har:
Dette er min maillingliste.asp

<%@LANGUAGE="VBSCRIPT"%>

<%
If Request.QueryString("Submit") <> "" Then
%>
<!--#include file="forbindelse.asp" -->
<%
Set mailadr = Server.CreateObject("ADODB.Recordset")
mailadr.Open "mailingliste", database, 2, 2

mailadr.AddNew
    mailadr("Navn") = Request.QueryString("Navn")
    mailadr("email") = Request.QueryString("email")
   
mailadr.Update

End If
%>
<html><title>M A I L L I S T</title>

<Link REL="StyleSheet" HREF="./style/style.css" TYPE="text/css">


<head>

<script language="javascript">

function Luk(){
window.close()
}

function lukNu(){

setTimeout("Luk()", 10*1000)
}
</script>




  </head>
  <body onBlur="lukNu()">
  <table>
  <tr>
    <td>
      <div align="center">Dear
        <% = Request.QueryString("Navn") %>
       
        <br>
        <br>
        Velkommen på maillisten - <br>
        du får nu besked hver gang vi udsender nyt.<br>
        <br>
        <br>
        <br>
        <br>
        <a href="java script:window.close()" onFocus="this.blur()" class="luk"><br>
        <br>
        <br>
        <br>
        <br>
        Close</a> </div>
    </td>
</tr>
</table>


  </body>
  </html>

og min form:
<form name="form" onSubmit="return afsendelse(this)" action="mailingliste.asp" method="get">

-----------------------------------------------------

Når jeg submitter denne form - virker det upåklageligt.
Der skiftes til mailingliste.asp, som sætter i databasen og som skriver Kære (navn) osv

Så er det bare at jeg bare gerne vil åbne mailingliste.asp i et lille vindue i stedet for at siden fylder hele vinduet.

Jeg kan ikke lige overskue dit forslag. Det ser ud som om, at det jeg har nu skal kasseres helt - og at det er en helt anden løsning du foreslår.
Er der ingen ligetil løsning med den kode jeg pt. har?
Avatar billede thesurfer Nybegynder
07. juli 2003 - 19:07 #10
fejl:  onFocus="this.blur(" class="luk">  ** mangler ")" til this.blur(


hvad med at beholde den side du har nu, og så ha' en popup der siger "Du er nu tilføjet"..?
Avatar billede thesurfer Nybegynder
07. juli 2003 - 19:12 #11
dvs du har en side med en form [navn] og [email], som så skal åbne en åbne et nyt vindue, opdater database..

hvordan skal det nye vindue lukkes..?

hvilket vindue skal "hej <navn>" være i? det gamle eller popup'en?
Avatar billede frida Nybegynder
07. juli 2003 - 19:14 #12
Tro det eller lad være - men det er sket før når jeg kopierer hertil - at lige netop this.blur() mangler den sidste parantese??!! Ja jeg ved det lyder som om det er mig der er tosset :o) - og det er jeg nok også - men det er faktisk rigtigt! Jeg har den korrekt i koden.

Ja jeg kan godt vælge din løsning - men jeg vil jo også gerne lære det her!

Jeg prøver at læse lidt i mine bøger - og lader spørgsmålet stå lidt.

Foreløbig tak for din tålmodighed.

frida
Avatar billede thesurfer Nybegynder
07. juli 2003 - 19:18 #13
det var så lidt.. jeg kigger ind engang i mellem..
Avatar billede frida Nybegynder
07. juli 2003 - 19:22 #14
- jeg så ikke lige din anden kommentar.
Dette er hele min form:

<form name="form" onSubmit="return afsendelse(this)" action="mailingliste.asp" method="get">

              <table width="100%" border="0" cellspacing="0" cellpadding="0">
                <tr>
                  <td colspan="3">
                    <div align="right">
                      <% response.write Date()%>
                    </div>
                  </td>
                </tr>
                <tr>
                  <td colspan="3"><br>
                  <strong> Nyhedsbrev</strong></td>
                </tr>
                <tr>
                  <td width="45">&nbsp;</td>
                  <td width="98" colspan="2">&nbsp;</td>
                </tr>
                <tr>
                  <td width="45" valign="middle"><br>
                    Name:</td>
                  <td width="98" colspan="2"> <br>
                    <input type="text" name="Navn" size="15" class="text">
                  </td>
                </tr>
                <tr>
                  <td width="45" valign="middle"><br>
                    Email:</td>
                  <td width="98" colspan="2"> <br>
                    <input type="text" name="email" size="15" class="text">
                  </td>
                </tr>
                <tr>
                  <td width="45">&nbsp;</td>
                  <td width="98" colspan="2">&nbsp;</td>
                </tr>
                <tr>
                  <td width="45">&nbsp;</td>
                  <td width="49">
                    <div align="left"><button type="submit" name="Submit" onfocus="this.blur()" class="kontakt">
                      SEND </button></div>
                  </td>
                  <td width="49"><div align="right"><button type="reset" name="Fortryd" onfocus="this.blur()" class="kontakt">
          RESET </button>
                    </div>
                  </td>
                </tr>
                <tr>
                  <td width="45">&nbsp;</td>
                  <td width="98" colspan="2">&nbsp;</td>
                </tr>
              </table>
            </form>

--------------------------------------------------------------

Når jeg submitter er action="maillingliste.asp"

Den kode jeg har vist dig.
Her sættes i databasen og skrives til den der har indtastet: Hej (navn)

Nu skifter den bare til den side
Jeg vil gerne åbne siden i et nyt vindue, som jeg selv bestemmer hvordan skal se ud. Dertil har jeg et javascript.

Når popupvinduet skal lukke - kan man klikke på luk-linket eller lader det køre på statuslinien, hvorefter det lukker af sig selv efter 10 sekunder.

Så jeg vil stadig bare gerne ha', at min maillingliste.asp vises i et lille vindue.
Avatar billede thesurfer Nybegynder
07. juli 2003 - 19:28 #15
hvad skal der så ske med data'erne man har indtaste i formen? skal de så bare slettes, eller hvad?
Avatar billede frida Nybegynder
07. juli 2003 - 19:30 #16
De går i databasen:

<%
If Request.QueryString("Submit") <> "" Then
%>
<!--#include file="forbindelse.asp" -->
<%
Set mailadr = Server.CreateObject("ADODB.Recordset")
mailadr.Open "mailingliste", database, 2, 2

mailadr.AddNew
    mailadr("Navn") = Request.QueryString("Navn")
    mailadr("email") = Request.QueryString("email")
   
mailadr.Update

End If
%>
Avatar billede thesurfer Nybegynder
07. juli 2003 - 19:38 #17
min bærbar kan max gå op til 1024x768..

siden er designet til samme opløsning (tror jeg), så der skulle egentligt ikke være chance for at indholder fylder mere end der kan være på skærmen (i framen)..

det er en fejl fra webmasterens side..


men ja, jeg tror at du har ret.
Avatar billede thesurfer Nybegynder
07. juli 2003 - 19:39 #18
DOOHHH!

forkert indlæg! ;)

her er det rigtige indlæg:

nej, jeg mener fra den gamle side.. der hvor man indtaster navn og email.. teksten skal vel slettes fra felterne..

skal man sendes videre til en anden side, eller?
Avatar billede thesurfer Nybegynder
07. juli 2003 - 19:44 #19
hvad bruger du af database? access?

jeg tror godt at jeg kan lave et eksempel til dig..
Avatar billede frida Nybegynder
07. juli 2003 - 19:52 #20
Jeg har to filer:
Den med formen, hvor man indtaster navn og email.
Den hedder mail.htm
Og i den er action="mailingliste.asp"
som lægger i databasen og derefter skriver til indtasteren:
Hej (navn) osv
Dvs. jeg skifter væk fra min oprindelige indtastningsside - og vil derfor blot gerne ha' at mailingliste.asp er i et popupvindue.
Ja - jeg bruger access
Avatar billede thesurfer Nybegynder
07. juli 2003 - 19:58 #21
.. er lige i gang med et eksempel..
Avatar billede frida Nybegynder
07. juli 2003 - 20:02 #22
fint :o)
Avatar billede thesurfer Nybegynder
07. juli 2003 - 20:39 #23
næsten færdig.. skal lige test i xp..
Avatar billede thesurfer Nybegynder
07. juli 2003 - 20:47 #24
hvad sider du til det her:

du indtaster navn og email på form-siden [1]
[1] åbner så [2] som gemmer info i db og skriver "Hans Hansen er lige blevet tilmeld listen (hans@hansen.dk)".. og der vil så være en luk knap..
data'ne (felterne) fra [1] slettes automatisk da der submittes..

hvad synes du om det?
Avatar billede frida Nybegynder
07. juli 2003 - 21:01 #25
Jamen det syn's jeg vist godt om. :o)
Avatar billede thesurfer Nybegynder
07. juli 2003 - 21:01 #26
her er det jeg har brugt, og det virker hos mig:


*** form.asp (siden med formen)

<form name="frmMail" method="post">
<input type="text" name="name" value="">
<br>
<input type="text" name="email" value="">
<br>
<input type="button" value="Send" onClick="validate()">
</form>

<script language="javascript">
var strNavn;
var strEmail;

function validate()
{
    if (document.forms['frmMail'].name.value != "") {
        if (document.forms['frmMail'].email.value != "") {

            strNavn = document.forms['frmMail'].name.value;
            strEmail = document.forms['frmMail'].email.value;
            window.open('mail.asp?navn=' + strNavn + '&email=' + strEmail,300,200);
            document.forms['frmMail'].submit();

        } else { alert("Mangler Email"); return false;}
    } else { alert("Mangler Navn"); return false;}
}
</script>


*** mail.asp (siden der gemme data i database)

<%
if (request.querystring("navn") <> "") and (request.querystring("email") <> "") then

dim Conn, DSN, strSQL
dim strNavn, strEmail

Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("db1.mdb")
Conn.Open DSN

strNavn = request.querystring("navn")

strEmail = request.querystring("email")


strSQL = "Insert into tblMail (navn, email) values('" & strNavn & "', '" & strEmail & "')"
Conn.Execute(strSQL)

Conn.Close
Set Conn = Nothing

response.write "Tilføjet til databasen:<br>"
response.write "Navn: " & strNavn & "<br>"
response.write "Email: " & strEmail

else
    response.write "fejl! mangler navn eller email"
end if
%>

<br><br>

<a href="java script:window.close()">Luk dette vindue</a>


*** db1.mdb (database filen), indhold:


tabel: tblMail
felt : "navn", type tekst
felt : "email", type tekst
Avatar billede frida Nybegynder
07. juli 2003 - 21:04 #27
Det ser fint ud.
Jeg prøver det lige af.
Avatar billede frida Nybegynder
07. juli 2003 - 21:44 #28
Det virker faktisk!  - Der åbner et nyt vindue med det jeg har tilføjet - og det går i databasen.
MEN form.asp skifter til en fejlside, hvor der står:

HTTP-fejl 405
405 Metoden er ikke tilladt.

Den metode, der er angivet på anmodningslinjen, er ikke tilladt for den ressource, der er identificeret af anmodningen. Kontroller, at du har installeret den rigtige MIME-type for den ressource, du har bedt om.

Kontakt administratoren for serveren, hvis problemet opstår igen.
------------------------------------------------------------------------------
Jeg bruger Access 2000 og Win 98 - hvis det overhovedet har noget med sagen at gøre.
Avatar billede thesurfer Nybegynder
07. juli 2003 - 21:50 #29
prøv at erstatte  document.forms['frmMail'].submit();  med  location.href='form.asp';
Avatar billede frida Nybegynder
07. juli 2003 - 22:07 #30
Det virker !!!
Fantastisk !!!
Dette var præcis, hvad jeg gerne ville
- og nu fedter jeg videre med detaljerne.
Mange tak for hjælpen :o)

Frida
Avatar billede frida Nybegynder
07. juli 2003 - 22:08 #31
Åh ja - du skal jo lige smide et svar - så du kan få dine velfortjente point
Avatar billede thesurfer Nybegynder
07. juli 2003 - 22:08 #32
her er et svar..

du skal nok lave det lidt pænere end det jeg havde lavet :)
Avatar billede frida Nybegynder
07. juli 2003 - 22:11 #33
Jo jo - men det er nu det mindste af det. Det hjælper jo ikke meget at det er pænt, hvis det ikke virker!
Jeg er ihvertfald glad for hjælpen.
Hyg dig
Frida
Avatar billede thesurfer Nybegynder
07. juli 2003 - 22:12 #34
jeg sad 100 år og kunne ikke forstå hvad der var galt.. men det viser sig at det bare var filnavnet på databsen der var forkert :) .. jeg havde skrevet "db.mdb".. i stedet for "db1.mdb".. manglede "1" efter "db"..
Avatar billede thesurfer Nybegynder
07. juli 2003 - 22:12 #35
hygge
Avatar billede frida Nybegynder
07. juli 2003 - 22:13 #36
:o)
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
Kurser inden for grundlæggende programmering

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