Avatar billede slash Nybegynder
06. november 2001 - 08:41 Der er 1 løsning

Formnavn som variabel - suspekt problem!

Hej.

Min problemstilling er følgende:
På side1.asp har jeg en form med en række text bokse som man kan ændre data i på baggrund af et databaseopslag. Èt af felterne bruges til at angive et billede -> txtBillede! Ønsker man at angive et billede, så trykker man på et link og en ny side popper op - side2.asp. På side2.asp listes alle billeder i et givent bibliotek i en dropdown boks! Man vælger et billede, og trykker på et link og billedets sti overføres til side1.asp hvor stien skal indsættes i text boksen txtBillede.

I og med at side2.asp skal bruges x-antal gange i forskellige forme, så mente jeg det kunne være smart at overføre det aktuelle formnavn fra side1.asp til side2.asp som en variabel - og det er her det går galt.
Problemus er at når jeg gør dette, så kommer fejlmedlingen: \"txtBillede is null or not an object\" konstant. Jeg ved at stien og formnavnet bliver overført fra side2.asp til side1.asp - der står det korrekte når man lige alert()\'er!

Koden som generer formen på side1.asp:
<script language=\"javascript\">
function openwin(FrmNavn) {
  msgWindow = window.open(\'vaelgbillede.asp?FrmNavn=\'+FrmNavn,\'popup\',\'resizable=yes,height=400,width=500\')
}
function insertBillede(sti, formnavn){
    formnavn.txtBillede.value = sti;
}

</script>
<%
Response.Write \"<form action=\"\"tci.asp\"\" method=\"\"post\"\" name=\"\"RedVareGRP\"\" onsubmit=\"\"return test()\"\">\" & vbcrlf
    Response.Write \"<input type=\"\"hidden\"\" name=\"\"mode\"\" value=\"\"RedVareGruppeData\"\">\" & vbcrlf
    Response.Write \"<tr><td colspan=\"\"2\"\" class=\"\"SuperOverSkrift\"\"><h2>Varegruppens data:</td></tr>\" & vbcrlf
    while not resEnVare.eof
        Response.Write \"<tr><td>Varens navn:</td><td><input type=\"\"text\"\" name=\"\"REDVGR_NAVN\"\" value=\"\"\"& resEnVare(\"vgr_navn\") &\"\"\"></td></tr>\" & vbcrlf
        Response.Write \"<tr><td>Varens overordnede beskrivelse:</td><td><input type=\"\"text\"\" name=\"\"REDVGR_BESKR\"\" VALUE=\"\"\"& resEnVare(\"vgr_beskrivelse\") &\"\"\"></td></tr>\" & vbcrlf
        Response.Write \"<tr><td>Varens hovedfoto</td><td><input type=\"\"text\"\" name=\"\"txtBillede\"\" VALUE=\"\"\"& resEnVare(\"fto_navn_detalje\") & \"\"\" onblur=\"\"insertBillede(sti, formnavn)\"\"><a href=\"\"#\"\" onclick=\"\"java script:openwin(\'document.RedVareGRP\');\"\">Vælg nyt billede</a></td></tr>\" & vbcrlf
        Response.Write \"<tr><td>Varens miniaturefoto:</td><td><input type=\"\"text\"\" name=\"\"REDFTO_NAVN_MINI\"\" VALUE=\"\"\"& resEnVare(\"fto_navn_mini\") &\"\"\"></td></tr>\" & vbcrlf
        Response.Write \"<tr><td>Varens Varegruppe:</td><td><input type=\"\"text\"\" name=\"\"REDVKL_NAVN\"\" value=\"\"\"& resEnVare(\"vkl_navn\") & \"\">\"</td></tr>\" & vbcrlf
        resEnVare.movenext
    wend
    Response.Write \"<tr><td colspan=\"\"2\"\"><INPUT type=\"\"submit\"\" value=\"\"Opdater varegruppedata\"\"></td></tr>\"
    Response.Write \"</form>\"
%>
side2.asp kode:
<SCRIPT LANGUAGE=javascript>
function udfoer() {
window.opener.insertBillede(\"<%=billede%>\",\"<%=FormRefer%>\")
  window.close()
}
</SCRIPT>
<%
FormRefer = Request.QueryString(\"FrmNavn\")
if FormRefer = \"\" then
    FormRefer = Request.Form(\"FN\")
end if
%>
<BODY>
<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%\">
    <form action=\"vaelgbillede.asp\" method=\"post\" name=\"form1\">
        <tr>
            <td>
                <input type=\"hidden\" name=\"FN\" value=\"<%=FormRefer%>\">
                <SELECT name=\"billede\" ONCHANGE=\"document.form1.submit()\">
                    <OPTION value=\"\" SELECTED>Vælg billede</OPTION>
                        <%= listBilleder()%>
                </SELECT>&nbsp;&nbsp;
        </tr>
        <tr>
            <td>
                <hr>
            </td>
        </tr>
        <tr>
            <td>
                <%= billedeHTML %>
            </td>
        </tr>
        <tr>
            <td>
                <hr>
                <a href=\"java script:window.close()\">Fortryd</a>&nbsp;&nbsp;<%= vaelgHTML %>
            </td>
        </tr>
    </form>
</table>
</BODY>

Det er ligesomom når jeg på side1.asp prøver at referere til min formnavn variabel som overføres fra side2.asp, så opfatter den formnavnet som en streng.. hvorn kan man løse dette problem??

Avatar billede slash Nybegynder
06. november 2001 - 09:06 #1
Fandt selv ud af det :-)

Ændrede følgende funktion fra:
function insertBillede(sti, formnavn){
    formnavn.txtBillede.value = sti;
}

til:
function insertBillede(sti,formnavn){
document.forms[formnavn].txtBillede.value = sti;
}

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