php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > HTML, JavaScript, AJAX, jQuery, CSS, Bootstrap, LESS
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


HTML, JavaScript, AJAX, jQuery, CSS, Bootstrap, LESS Probleme mit HTML5, Bootstrap oder jQuery ?

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 15-05-2013, 12:33
Benutzerbild von BananaJo BananaJo
 Registrierter Benutzer
Links : Onlinestatus : BananaJo ist offline
Registriert seit: Aug 2008
Beiträge: 344
BananaJo kann nur auf Besserung hoffen
Standard DOM Elemente aus Cookie auslesen und ausgeben

Hallo,

ich speichere DOM Elemente in einem Javascript Cookie, da ich die erstellten Inhalte bei einem Seitenwechel erhalten möchte.

Das Speichern funktioniert soweit gut. Leider bekomme ich die Elemente beim aufrufen der Seite nicht wieder ausgebeben

Hier ist mein Code:

PHP-Code:
//speichern
$('#divBox').live('mouseup', function () {    
        
        var 
elem = new Array();
        
        $.
each('.elemente'), function() { 
        var 
arr jQuery.makeArray('.elemente');
        
elem arr;    
        });
    
        $.
cookie("BuilderElements"elem);
    });

//und das auslesen bei seitenaufruf
$(document).ready(function () {
    
optInit getOptionsForPagination();
    
    
//elemente aus cookie laden
    
if ($.cookie("BuilderElements").length 0) {
    
        
console.log('cookie da');
    
        var 
cookie = $.cookie('BuilderElements');
    
        $(
cookie).appendTo('#divTest');
        
    }else{ 
console.log('kein cookie'); }
    
}); 
die console gibt auch nur aus das das cookie angelegt ist und auch den inhalt im cookie. leider bekomme ich die elemente nicht wieder in ein DIV eingefügt, so wie die vorher waren.

wo liegt denn mein fehler??
Mit Zitat antworten
  #2 (permalink)  
Alt 15-05-2013, 15:34
Melewo
 Registrierter Benutzer
Links : Onlinestatus : Melewo ist offline
Registriert seit: Jan 2013
Beiträge: 365
Melewo befindet sich auf einem aufstrebenden Ast
Standard

Mit Deinem Code kann ich nicht viel anfangen, da ich von jQuery keine Ahnung habe. Ich kann Dir aber ein Beispiel geben, wie ich das eventuell mit JavaScript angehen würde und wenn Du damit etwas anfangen kannst, dann könntest Du das ja für jQuery entsprechend anpassen.

Allgemein sind die Möglichkeiten zum Speichern mit Cookies jedoch begrenzt und eventuell würde sich dann DOM Storage mehr anbieten, da ja viel mehr gespeichert werden könnte. Doch das weißt Du wohl auch allein ohne meine Bemerkung.

Seite 1:
HTML-Code:
<!DOCTYPE html>
<html>

<head>
<title>Test Seite 1</title>
</head>

<body>
<h1>Elemente in Cookie speichern</h1>
<script type="text/javascript">

if (document.cookie == "") { 

    document.cookie  = escape("<div style='border:1px solid #B84420'>enthaltener Content</div>");
    document.cookie += escape("<hr>");
    document.cookie += escape("<p style='color:#6DA719'>Neuer Absatz</p>");
}
</script>
</body>
</html>
Seite 2 - Auslesen:
HTML-Code:
<!DOCTYPE html>
<html>

<head>
<title>Test Seite 2</title>
</head>

<body>
<h1>Lese Elemente aus Cookie</h1>
<script type="text/javascript">

if (document.cookie != "") {

    var leseaus = unescape(document.cookie);
    var suchhr  = /(<hr>)/;
    var suchdiv = /(<div(.*?)>.+?<\/div>)/;
    var suchp   = /(<p(.*?)>.+?<\/p>)/;

    var ergbdiv = suchdiv.exec(leseaus);
    var ergbhr  = suchhr.exec(leseaus);
    var ergbp   = suchp.exec(leseaus);

    document.write(ergbdiv[0]);
    document.write(ergbhr[0]);
    document.write(ergbp[0]);
}
else {document.write("Es wurde nichts übergeben!");
}
</script>
</body>
</html>
Mit Zitat antworten
  #3 (permalink)  
Alt 15-05-2013, 15:45
wahsaga
  Moderator
Links : Onlinestatus : wahsaga ist offline
Registriert seit: Sep 2001
Beiträge: 25.236
wahsaga befindet sich auf einem aufstrebenden Ast
Standard

Du kannst keine DOM-Elemente "in Cookies speichern" - weil DOM-Elemente Objekte sind, und Cookie nur Strings aufnehmen können.

Du könntest höchstens die Elemente serialisieren - z.B. sie durch ihren HTML-Code darstellen. Diesen kannst du speichern, und daraus nach dem Auslesen wieder neue Elemente erzeugen.
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
Mit Zitat antworten
  #4 (permalink)  
Alt 15-05-2013, 16:09
Benutzerbild von BananaJo BananaJo
 Registrierter Benutzer
Links : Onlinestatus : BananaJo ist offline
Registriert seit: Aug 2008
Beiträge: 344
BananaJo kann nur auf Besserung hoffen
Standard

also ich bin auf JsonML (JSON Markup Language) gestoßen und will das DOM objekt als json string speichern. leider bekomme ich bei der Funktion immer ein 'null' ausgegeben.. weiß jemand wieso?

PHP-Code:
var nodes document.getElementById('divbox');
console.log(JsonML.fromHTML(nodes)); 
das ist der JS code https://raw.github.com/mckamey/jsonm.../jsonml-dom.js

*EDIT*
hab doch kein null.. hatte anstatt 'divbox' es als jQuery #divbox geschrieben

Geändert von BananaJo (15-05-2013 um 16:11 Uhr)
Mit Zitat antworten
  #5 (permalink)  
Alt 15-05-2013, 16:16
Benutzerbild von BananaJo BananaJo
 Registrierter Benutzer
Links : Onlinestatus : BananaJo ist offline
Registriert seit: Aug 2008
Beiträge: 344
BananaJo kann nur auf Besserung hoffen
Standard

JsonML + Browser-Side Templates (JBST) funktioniert perfekt!

PHP-Code:
var nodes document.getElementById('div');

var 
json JsonML.fromHTML(nodes);
json_str JSON.stringify(json);

cookie = $.cookie("Elements"json_str);

cookie JsonML.toHTML(cookie);        
var 
html JsonML.toHTML(cookie); 

Geändert von BananaJo (15-05-2013 um 17:56 Uhr)
Mit Zitat antworten
  #6 (permalink)  
Alt 15-05-2013, 17:48
Benutzerbild von BananaJo BananaJo
 Registrierter Benutzer
Links : Onlinestatus : BananaJo ist offline
Registriert seit: Aug 2008
Beiträge: 344
BananaJo kann nur auf Besserung hoffen
Standard

Ich habe nun ein neues Problem.. also ich spiechere den JSON String erfolgreich im Cookie und lese den auch erfolgreich aus und zeige den gespeicherten DOM an.. so.. Leider wird nicht der komplette DOM mit dem Inhalt im Parent div gespeichert, sondern nur ein Element im Parent div.. der JSON String sieht korrekt aus und beinhaltet auch alles!! leider ist der String im Cookie gekürzt und bricht genau nach dem erstem Child Element ab.

das ist der JSON String

PHP-Code:
["DIV",{"class":"Canvas ui-droppable","id":"cnv"},"\n\t\t\t\t",["DIV",{"id":"builder-example","style":"background-image: url(http://localhost/pin/images/builder_example.gif); display: none;"}],"\n\t\t\t",["DIV",{"class":"ui-wrapper ui-draggable","style":"overflow: hidden; position: absolute; width: 110px; height: 152px; top: 52px; left: 320px; margin: 0px;"},["IMG",{"src":"http://www.website.com/images/72526_d.png","itemid":"72526","style":"width: 110px; min-height: 10px; height: 152px; padding: 0px; left: 229px; top: 82px; cursor: move; margin: 0px; resize: none; position: static; zoom: 1; display: block;","class":"ui-resizable"}],["DIV",{"class":"ui-resizable-handle ui-resizable-n","style":"z-index: 90; display: none;"}],["DIV",{"class":"ui-resizable-handle ui-resizable-e","style":"z-index: 90; display: none;"}],["DIV",{"class":"ui-resizable-handle ui-resizable-s","style":"z-index: 90; display: none;"}],["DIV",{"class":"ui-resizable-handle ui-resizable-w","style":"z-index: 90; display: none;"}],["DIV",{"class":"ui-resizable-handle ui-resizable-ne","style":"z-index: 90; display: none;"}],["DIV",{"class":"ui-resizable-handle ui-resizable-se ui-icon ui-icon-gripsmall-diagonal-se","style":"z-index: 90; display: none;"}],["DIV",{"class":"ui-resizable-handle ui-resizable-sw","style":"z-index: 90; display: none;"}],["DIV",{"class":"ui-resizable-handle ui-resizable-nw","style":"z-index: 90; display: none;"}],["A",{"href":"javascript:void(0)","id":"btnDelete","class":"remove","title":"Entfernen","alt":"Entfernen","style":"display: none;"}],["A",{"href":"javascript:void(0)","id":"btnClone","class":"clone","title":"Klonen","alt":"Klonen","style":"display: none;"}],["A",{"href":"javascript:void(0)","id":"btnUp","class":"up","title":"Vorne","alt":"Vorne","style":"display: none;"}],["A",{"href":"javascript:void(0)","id":"btnDown","class":"down","title":"Hinten","alt":"Hinten","style":"display: none;"}],["A",{"href":"javascript:void(0)","id":"btnFlipH","class":"flipH","title":"Spiegeln","alt":"Spiegeln","style":"display: none;"}],["A",{"href":"javascript:void(0)","id":"btnFlipV","class":"flipV","title":"Spiegeln","alt":"Spiegeln","style":"display: none;"}]],["DIV",{"class":"ui-wrapper ui-draggable ui-selected ui-draggable-dragging","style":"overflow: hidden; position: absolute; width: 148px; height: 148px; top: 68px; left: 119px; margin: 0px;"},["IMG",{"src":"http://www.website.com/images/214312_d.png","itemid":"214312","style":"width: 148px; min-height: 10px; height: 148px; padding: 0px; left: 66px; top: 126px; cursor: move; margin: 0px; resize: none; position: static; zoom: 1; display: block;","class":"ui-resizable"}],["DIV",{"class":"ui-resizable-handle ui-resizable-n","style":"z-index: 90; display: block;"}],["DIV",{"class":"ui-resizable-handle ui-resizable-e","style":"z-index: 90; display: block;"}],["DIV",{"class":"ui-resizable-handle ui-resizable-s","style":"z-index: 90; display: block;"}],["DIV",{"class":"ui-resizable-handle ui-resizable-w","style":"z-index: 90; display: block;"}],["DIV",{"class":"ui-resizable-handle ui-resizable-ne","style":"z-index: 90; display: block;"}],["DIV",{"class":"ui-resizable-handle ui-resizable-se ui-icon ui-icon-gripsmall-diagonal-se","style":"z-index: 90; display: block;"}],["DIV",{"class":"ui-resizable-handle ui-resizable-sw","style":"z-index: 90; display: block;"}],["DIV",{"class":"ui-resizable-handle ui-resizable-nw","style":"z-index: 90; display: block;"}],["A",{"href":"javascript:void(0)","id":"btnDelete","class":"remove","title":"Entfernen","alt":"Entfernen","style":"display: block;"}],["A",{"href":"javascript:void(0)","id":"btnClone","class":"clone","title":"Klonen","alt":"Klonen","style":"display: block;"}],["A",{"href":"javascript:void(0)","id":"btnUp","class":"up","title":"Vorne","alt":"Vorne","style":"display: block;"}],["A",{"href":"javascript:void(0)","id":"btnDown","class":"down","title":"Hinten","alt":"Hinten","style":"display: block;"}],["A",{"href":"javascript:void(0)","id":"btnFlipH","class":"flipH","title":"Spiegeln","alt":"Spiegeln","style":"display: block;"}],["A",{"href":"javascript:void(0)","id":"btnFlipV","class":"flipV","title":"Spiegeln","alt":"Spiegeln","style":"display: block;"}]]] 
und das ist was im cookie nach dem auslesen ausgegeben wird

PHP-Code:
BuilderElements=%22%5B%22DIV%22%2C%7B%22class%22%3A%22Canvas%20ui-droppable%22%2C%22id%22%3A%22cnv%22%7D%2C%22%5Cn%5Ct%5Ct%5Ct%5Ct%22%2C%5B%22DIV%22%2C%7B%22id%22%3A%22builder-example%22%2C%22style%22%3A%22background-image%3A%20url(http%3A%2F%2Flocalhost%2Fpin%2Fimages%2Fstyle_builder_example.gif)%3B%20display%3A%20none%3B%22%7D%5D%2C%22%5Cn%5Ct%5Ct%5Ct%22%2C%5B%22DIV%22%2C%7B%22class%22%3A%22ui-wrapper%20ui-draggable%22%2C%22style%22%3A%22overflow%3A%20hidden%3B%20position%3A%20absolute%3B%20width%3A%20110px%3B%20height%3A%20152px%3B%20top%3A%2052px%3B%20left%3A%20320px%3B%20margin%3A%200px%3B%22%7D%2C%5B%22IMG%22%2C%7B%22src%22%3A%22http%3A%2F%2Fwww.website.com%2Fimages%2F72526_d.png%22%2C%22itemid%22%3A%2272526%22%&#8230;A%22Spiegeln%22%2C%22style%22%3A%22display%3A%20block%3B%22%7D%5D%5D%5D%22 
woran kan das denn schon wieder liegen?? ich vermute es ist der Berich mit '],[' im String, so das zweite Kind Element anfängt.. kann das sein???
wie kann ich denn den ganzen String speichern?
Mit Zitat antworten
  #7 (permalink)  
Alt 15-05-2013, 20:15
Melewo
 Registrierter Benutzer
Links : Onlinestatus : Melewo ist offline
Registriert seit: Jan 2013
Beiträge: 365
Melewo befindet sich auf einem aufstrebenden Ast
Standard

Schrieb ich bereits weiter oben, Cookies sind begrenzt. Habe noch einmal nachgelesen, auf mindestens 4096 Bytes pro Cookie, wie es heißt. Wie viel hat Dein kodierter String? Übersteigt der diese Grenze? Nehme es an, da der ohne Kodierung bereits rund 4.000 Zeichen enthält. Falls ja und wenn Du mehr speichern möchtest, nehme Storage oder vielleicht hilft auch aufteilen auf mehrere Cookies.
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Domain aus dom.org.uk und sub.dom.de extrahieren mgutt PHP Developer Forum 6 17-06-2009 18:51
option elemente mit DOM erzeugen und fühlen mcmurphy HTML, JavaScript, AJAX, jQuery, CSS, Bootstrap, LESS 9 26-05-2008 19:39
Auslesen aus T1, mit Daten aus T1 Namen aus T2 suchen und ausgeben !? Majjo SQL / Datenbanken 4 08-08-2003 13:41
Wert aus MySQL DB auslesen und ausgeben HämZli SQL / Datenbanken 1 10-06-2003 07:53
dateien aus verzeichniss auslesen und ausgeben... bleaz PHP Developer Forum 2 12-06-2001 11:17

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


PHP News

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

ADSMAN V3 - Werbe-Manager ansehen ADSMAN V3 - Werbe-Manager

ADSMAN V3 - mehr als nur ein Bannermanager! Banner, Textanzeigen und PagePeel Manager! Mit ADSMAN PRO haben Sie die Marketinglösung für eine effektive und effiziente Werbeschaltung mit messbaren Ergebnissen. Unterstützt werden Bannerformate in beliebi

25.10.2018 virtualsystem | Kategorie: PHP/ Bannerverwaltung
PHP News und Artikel Script V2

News schreiben, verwalten, veröffentlichen. Dies ist jetzt mit dem neuen PHP News & Artikel System von virtualsystem.de noch einfacher. Die integrierte Multi-User-Funktion und der WYSIWYG-Editor (MS-Office ähnliche Bedienung) ermöglichen...

25.10.2018 virtualsystem | Kategorie: PHP/ News
Top-Side Guestbook

Gästebuch auf Textbasis (kein MySQL nötig) mit Smilies, Ip Sperre (Zeit selbst einstellbar), Spamschutz, Captcha (Code-Eingabe), BB-Code, Hitcounter, Löschfunktion, Editierfunktion, Kommentarfunktion, Kürzung langer Wörter, Seiten- bzw. Blätterfunktion, V

22.10.2018 webmaster10 | Kategorie: PHP/ Gaestebuch
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 22:40 Uhr.