Saadat: Arrays an andere ASP-Seiten übertragen

Hallo,

wie kann man Arrays (ein- oder zweidimensional) an andere Seiten übergeben. Wenn ich versuche, ein Array wie eine normale Variable an die URL anzuhängen, kommt eine Fehlermeldung, daß der Datentyp unverträglich ist.

Ich freue mich für jeden kreativen Vorschlag!

Saadat

  1. Hallo Saadat,

    wie kann man Arrays (ein- oder zweidimensional) an andere Seiten
    übergeben. Wenn ich versuche, ein Array wie eine normale Variable
    an die URL anzuhängen, kommt eine Fehlermeldung, daß der Datentyp
    unverträglich ist.

    Ein Array ist auch nur eine Auflistung. Request.QueryString auch.
    Daher kann man sich auf 2 Arten helfen.

    <%
    For intCounter = 0 To UBound(aryTest) - 1
        strParams = strParams & "&param=" & aryTest(intCounter)
    Next

    strURL = "index.asp?submit=True" & strParams
    %>

    in strURL steht dann etwa folgendes:
    index.asp?submit=True&param=1&param=2&param=3

    Auslesen kann man das dann folgendermassen:
    <%
    For intCounter = 1 To Request.QueryString("param").Count
        aryParams(intCounter - 1) = Request.QueryString("param")(intCounter)
    Next
    %>

    Ohne Gewähr, da nicht getestet, aber bis auf evtl. Syntaxfehler sollte
    es so laufen.

    Tschau, Stefan

  2. Hallo,

    wie kann man Arrays (ein- oder zweidimensional) an andere Seiten übergeben. Wenn ich versuche, ein Array wie eine normale Variable an die URL anzuhängen, kommt eine Fehlermeldung, daß der Datentyp unverträglich ist.

    Ich freue mich für jeden kreativen Vorschlag!

    Saadat

    Hallo Saadat,

    da wohl eine direkte Übertragung eines arrays per Formular IMHO nicht geht (hätte ich auch gerne, wir sollten an MS schreiben!...) helfe ich mir mit versteckten Feldern:

    <form name="formname" method="post" action="auswerten.asp">

    <input type=hidden name=1dimension value=<%=Ubound(arr,1)%>>
    <input type=hidden name=2dimension value=<%=Ubound(arr,2)%>>
    <%
    for i = 0 to Ubound(arr,2)
    for j = 0 to Ubound(arr,1)
      Response.Write("<input type=hidden" & "name=" & CStr(i) & CStr(j) & " value=" & arr(j,i) & ">")
    next
    next%>

    Jetzt hast Du so was wie ein verstecktes array, welches Du in der auswerten.asp auslesen kannst (Namen auseinanderdröseln, die Performance ist aber IMHO sehr gut)

    <%for i = 0 to request.form("2dimension")
    for j = 0 to request.form("2dimension")%>

    Aber jetzt wirds spät und der Code komplex, von da wo ich Dir schreibe, kann ich nichts testen, aber es ist so, dass ich ellenlange hidden inputs mit solchen Manövern übertragen und ausgelesen kriege.

    Gruss
    Uwe Nohl

    1. <%for i = 0 to request.form("2dimension")

      »»  for j = 0 to request.form("2dimension")%>

      Aber jetzt wirds spät und der Code komplex, von da wo ich Dir schreibe, kann ich nichts testen, aber es ist so, dass ich ellenlange hidden inputs mit solchen Manövern übertragen und ausgelesen kriege.

      Hallo Saadat,
      ich nochmal (kriege nichts auf Anhieb geregelt): in der letzten Zeile muss es heissen: 1dimension, und ein eineindeutiges Trennzeichen sollte noch zwischen CStr(i) un CStr(j), damit Du dröseln kannst. Ausserdem habe ich Stefan Falz übersehen, er hat Dir eine Querystring-Lösung gepostet, die Deine Zwecke vielleicht besser bedient. Bei grossen Datenmengen sind hidden inputs aber die bessere Wahl, da sie nicht so so enge Mengengrenzen an Daten haben.

      So und jetzt gute Nacht
      Uwe Nohl

    2. <%for i = 0 to request.form("2dimension")

      »»  for j = 0 to request.form("2dimension")%>

      Aber jetzt wirds spät und der Code komplex, von da wo ich Dir schreibe, kann ich nichts testen, aber es ist so, dass ich ellenlange hidden inputs mit solchen Manövern übertragen und ausgelesen kriege.

      Hallo Saadat,
      ich nochmal (kriege nichts auf Anhieb geregelt): in der letzten Zeile muss es heissen: 1dimension, und ein eineindeutiges Trennzeichen sollte noch zwischen CStr(i) un CStr(j), damit Du dröseln kannst. Ausserdem habe ich Stefan Falz übersehen, er hat Dir eine Querystring-Lösung gepostet, die Deine Zwecke vielleicht besser bedient. Bei grossen Datenmengen sind hidden inputs aber die bessere Wahl, da sie nicht so so enge Mengengrenzen an Daten haben.

      So und jetzt gute Nacht
      Uwe Nohl