mediengestalter.info
FAQ :: Mitgliederliste :: MGi Team

Willkommen auf dem Portal für Mediengestalter

Aktuelles Datum und Uhrzeit: Fr 26.04.2024 06:37 Benutzername: Passwort: Auto-Login

Thema: [JavaScript] - Cookies auslesen / trennen - an ASP übergeben vom 12.11.2009


Neues Thema eröffnen   Neue Antwort erstellen MGi Foren-Übersicht -> Programmierung -> [JavaScript] - Cookies auslesen / trennen - an ASP übergeben
Autor Nachricht
Kash
Threadersteller

Dabei seit: 07.11.2002
Ort: Schopfheim
Alter: 41
Geschlecht: Männlich
Verfasst Do 12.11.2009 15:13
Titel

[JavaScript] - Cookies auslesen / trennen - an ASP übergeben

Antworten mit Zitat Zum Seitenanfang

Hallo zusammen,

ich habe folgendes Problem.

Es gibt ein Formular welches durch den Nutzer erweitert werden kann.
Also zum Beispiel mehrere FileUploads oder Texteingabefelder etc.

Diese neuen Felder generiere ich durch JavaScript.

Später sollen die Formular Elemente mittels ASP ausgewertet und in einer DB gespeichert werden.

Da die Programmierung nicht wissen kann wieviele Elemente schlußendlich abgeschickt werden,
habe ich mir die Anzahl der Elemente die vervielfälltigt werden können in JavaScript Cookies gespeichert.

Das funktioniert auch soweit alles.

Code:
<!-- #include file="inc/db_open.asp" -->
<!doctype html>
<html lang="de">
<head>
   <title>test</title>
   <meta http-equiv="Content-type" content="text/html; charset=ISO-8859-1" />
   <meta http-equiv="Content-Language" content="de" />
   <meta http-equiv="Content-Style-Type" content="text/css" />
   <style type="text/css" media="screen">
   <!--
      h2 + div {
         display:none;
      }
      em {
         color:blue;
      }
      label {
         display:inline-block;
         width:100px;
      }
      textarea {
         width:300px;
         height:150px;
      }
   -->
   </style>
   <script type="text/javascript" src="../library/jquery-1.3.2.js"></script>
   <script type="text/javascript">
   <!--
      $(document).ready(function(){
         $('h2').click(function(){
            if ($(this).next('div').is(":hidden")) {
               $(this).next('div').slideDown('slow');
            } else {
               $(this).next('div').slideUp('slow');
            }
         });
         
         $('#new-absatz').click(function(){
            var z = 0;
            var y = document.getElementsByTagName('textarea');
            for (var i = 0; i < y.length; i++){
               if(y[i].id.indexOf('absatz') != -1) {
                  z++;
               }
            }
            z = z + 1;
            $(this).before('<textarea id="absatz' +z+ '"></textarea><br><br>');
            
            document.cookie = "absatz=" +z;
            alert (document.cookie);
            return;
         });
         
         $('#new-file').click(function(){
            var z = 0;
            var y = document.getElementsByTagName('input');
            for (var i = 0; i < y.length; i++){
               if (y[i].type != 'file') {
                  continue;
               } else {
                  if (y[i].id.indexOf('data') != -1) {
                     z++;
                  }
               }
            }
            z = z + 1;
            $(this).before('<input type="file" id="data' +z+ '"><br><br>');
            
            document.cookie = "file=" +z;
            alert(document.cookie);
            return;
         });
      });
   //-->
   </script>
</head>
<body>
<header>
   <h1>Multiple Form</h1>
</header>
<hr>
<section id="aktionen">
   <h2>Kat</h2>
   <div id="kategorie">
      <form id="create-kategorie" action="save.asp" method="post">
         <label for="bezeichnung-kat">Description</label>
         <input type="text" id="bezeichnung-kat">
         <input type="submit" id="send-kat" value="save">
      </form>
   </div>
   <hr>
   <h2>Theme</h2>
   <div id="theme">
      <form id="create-theme" action="save.asp" method="post" enctype="multipart/form-data">
         <label for="bezeichnung-theme">Description</label>
         <input type="text" id="bezeichnung-theme">
         <br>
         <label for="headline">Headline</label>
         <input type="text" id="headline">
         <br><br>
         <textarea id="absatz1"></textarea>
         <br><br>
         <strong id="new-absatz">&gt;&nbsp;one more textarea</strong>
         <br><br>
         <input type="file" id="data1">
         <br><br>
         <strong id="new-file">&gt;&nbsp;one more file </strong>
         <br><br>
         <input type="submit" id="send-theme" value="save">
      </form>
   </div>
</section>
<br><br><br><br>
</body>
</html>
<!-- #include file="inc/db_close.asp" -->


Auf der Seite der Auswertung kommen die Cookies aus richtig an.

Wie folgt zu sehen





Nur stehe ich grad auf dem Schlauch diese Cookies zu trennen.
Dh. ich möchte nun die Werte von file und absatz gesondert behandeln wollen.

Hat mir jemand einen Tipp wie ich das schaffe.

Danke.


Zuletzt bearbeitet von Kash am Do 12.11.2009 17:15, insgesamt 1-mal bearbeitet
  View user's profile Private Nachricht senden
m
Moderator

Dabei seit: 18.11.2004
Ort: -
Alter: -
Geschlecht: Männlich
Verfasst Do 12.11.2009 15:27
Titel

Antworten mit Zitat Zum Seitenanfang

http://www.quirksmode.org/js/cookies.html#ex

Lächel
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
Anzeige
Anzeige
Kash
Threadersteller

Dabei seit: 07.11.2002
Ort: Schopfheim
Alter: 41
Geschlecht: Männlich
Verfasst Do 12.11.2009 15:28
Titel

Antworten mit Zitat Zum Seitenanfang

Vielen Dank. *Thumbs up!*
  View user's profile Private Nachricht senden
Kash
Threadersteller

Dabei seit: 07.11.2002
Ort: Schopfheim
Alter: 41
Geschlecht: Männlich
Verfasst Do 12.11.2009 17:20
Titel

Antworten mit Zitat Zum Seitenanfang

So ich bin jetzt schon ein stückchen weiter.

Folgend werte ich das JavaScript Cookie aus.

Code:
window.onload = function (){
         a = document.cookie;
         
         cookiename1 = a.substring(0,a.search('='));
         cookiewert1 = a.substring(a.search('=')+1,a.search(';'));
         if(cookiewert1 == '') {
            cookiewert1 = a.substring(a.search('=')+1,a.length);
         }
         
         a = a.substring(a.search(';')+1,a.length);
         
         cookiename2 = a.substring(0,a.search('='));
         cookiewert2 = a.substring(a.search('=')+1,a.search(';'));
         if(cookiewert2 == ''){
            cookiewert2 = a.substring(a.search('=')+1,a.length);
         }
         
         window.location.href='save2.asp?c1=' +cookiewert1+ '&c2=' +cookiewert2;
         
         return;
      }


Gleichzeitig gebe ich die Werte an das ASP Script weiter, damit ich damit arbeiten kann.


ASP Script

Code:
<!-- #include file="inc/db_open.asp" -->
<%
cw1 = request.querystring("c1")
cw2 = request.querystring("c2")

headline = request.form("headline")

response.write cw1 & "<br><br>"
response.write cw2 & "<br><br>"
response.write headline

%>
<!-- #include file="inc/db_close.asp" -->


Problem dabei ist, das die Formulardaten verloren gehen.

Das ist natürlich misst.

Hat mir jemand einen Gedankenanstoß wie ich diese mit übergeben kann?

Meine Überlegung war, diese ersteinmal zu sammeln und an eine seperate JS Funktion zu übergeben,
die dann die Cookie Werte und die Formulardaten weiterleitet.
Das als Querystring.

Das geht doch sicherlich einfacher.
  View user's profile Private Nachricht senden
m
Moderator

Dabei seit: 18.11.2004
Ort: -
Alter: -
Geschlecht: Männlich
Verfasst Do 12.11.2009 17:29
Titel

Antworten mit Zitat Zum Seitenanfang

Schreib die Inhalte der Javascript Cookies einfach in hidden input Elemente des Formulars …

Zuletzt bearbeitet von m am Do 12.11.2009 17:30, insgesamt 1-mal bearbeitet
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
Kash
Threadersteller

Dabei seit: 07.11.2002
Ort: Schopfheim
Alter: 41
Geschlecht: Männlich
Verfasst Do 12.11.2009 17:32
Titel

Antworten mit Zitat Zum Seitenanfang

m hat geschrieben:
Schreib die Inhalte der Javascript Cookies einfach in hidden input Elemente des Formulars …


Das ist eine gute Idee.

Nur grad wegen dem Ablauf.
In der Action vom Formular lade ich quasi die Seite neu und rufe eine Funktion auf die die Hidden Fields produziert.

Dann habe ich aber ja dennoch nicht die Möglichkeit das Formular abzusenden.
  View user's profile Private Nachricht senden
Kash
Threadersteller

Dabei seit: 07.11.2002
Ort: Schopfheim
Alter: 41
Geschlecht: Männlich
Verfasst Do 12.11.2009 18:08
Titel

Antworten mit Zitat Zum Seitenanfang

Ok, mal wieder zu kompliziert gedacht Ooops

Ich benötige bei meinem Vorhaben im Grunde keine JavaScript Cookies.

Dein Vorschlag m reicht vollkommen aus.

So kann ich z direkt beim erstellen von neuen Elementen als value des Hiddenfields übergeben.
Code:

<script type="text/javascript">
   <!--
      $(document).ready(function(){
         $('h2').click(function(){
            if ($(this).next('div').is(":hidden")) {
               $(this).next('div').slideDown('slow');
            } else {
               $(this).next('div').slideUp('slow');
            }
         });
         
         $('#new-absatz').click(function(){
            var z = 0;
            var y = document.getElementsByTagName('textarea');
            for (var i = 0; i < y.length; i++){
               if(y[i].id.indexOf('absatz') != -1) {
                  z++;
               }
            }
            z = z + 1;
            $(this).before('<textarea id="absatz' +z+ '"></textarea><br><br>');
            
            document.cookie = "absatz=" +z;
            document.getElementById('hidden-absatz').value = z;
            
            return;
         });
         
         $('#new-file').click(function(){
            var z = 0;
            var y = document.getElementsByTagName('input');
            for (var i = 0; i < y.length; i++){
               if (y[i].type != 'file') {
                  continue;
               } else {
                  if (y[i].id.indexOf('data') != -1) {
                     z++;
                  }
               }
            }
            z = z + 1;
            $(this).before('<input type="file" id="data' +z+ '"><br><br>');
            
            document.cookie = "file=" +z;
            document.getElementById('hidden-file').value = z;
            
            return;
         });
      });
   //-->
   </script>


Das klappt allerdings erst nach einem reload der seite.

Warum das?

// Ok jetzt klappt es. Dem Value muß definitiv ein default-value gegeben werden.

Ich setze standard die 1 und gut ist.

Danke m für deinen Tipp.


Zuletzt bearbeitet von Kash am Do 12.11.2009 18:25, insgesamt 2-mal bearbeitet
  View user's profile Private Nachricht senden
 
Ähnliche Themen id aus url auslesen und an link übergeben
Multiple Javascript Cookies
ID aus Datenbank in Javascript mit übergeben
Value eines Radiobuttons an Javascript übergeben
Javascript: Parameter übergeben und aufrufen?
GELÖST Bildschirmposition als Variable übergeben(Javascript)
Neues Thema eröffnen   Neue Antwort erstellen
MGi Foren-Übersicht -> Programmierung


Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst an Umfragen in diesem Forum nicht mitmachen.