php.de

Zurück   php.de > Webentwicklung > JavaScript, Ajax und mehr

JavaScript, Ajax und mehr dynamisches Scripten und Interaktion auf Clientebene

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 14.01.2011, 16:18  
Erfahrener Benutzer
 
Registriert seit: 08.08.2009
Beiträge: 195
PHP-Kenntnisse:
Fortgeschritten
da.eXecutoR befindet sich auf einem aufstrebenden Ast
Standard Brauche eine RegEx Unterstützung

Hallo zusammen

Ich hab da einen String der folgende Varianten haben kann:

Code:
child-of-node-19 ui-droppable initialized selected
Code:
ui-droppable initialized child-of-node-2
Code:
child-of-node-0 ui-droppable initialized parent expanded
Was ich benötige ist eigentlich ganz einfach, die Nummer hinder dem child-of-node

Ich krieg das aber mit dem match() einfach nicht hin. Ist sonst wirklich nicht meine Art aber kann mir da bitte bitte mal jemand kurz helfen?

Das ist mein ( schäm) Ansatz:

Code:
var id= $($(ui.draggable).parents("tr")[0]).attr("class").match("/(child-of-node-)\d/");
Vielen vielen Dank!

Grüsse

eXe
__________________
It's not a bug. It's a feature!
da.eXecutoR ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 14.01.2011, 16:30  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Was soll das doppelte $?
Warum matchst Du child-... wenn Du die Nummer brauchst?
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline   Mit Zitat antworten
Alt 14.01.2011, 16:57  
Erfahrener Benutzer
 
Registriert seit: 08.08.2009
Beiträge: 195
PHP-Kenntnisse:
Fortgeschritten
da.eXecutoR befindet sich auf einem aufstrebenden Ast
Standard

hey nikosch

Ich verwende das jquery plugin treeTable ( treeTable )

Damit kann ich ein virtuelles Verzeichnis darstellen und Ordner per Drag&Drop verschieben. Soweit funktioniert das auch ( bis auf einen Bug im Plugin den ich aber beheben konnte betreffend nicht erscheinen des + Zeichens vor einem Ordner wenn dieser ursprünglich leer war und du etwas in den Ordner reindroppst. )

Die Funktion sieht wie folgt aus:

Code:
$("#projectTree .folder").each(function() {
          $($(this).parents("tr")[0]).droppable({
            accept: ".file, .folder",
            drop: function(e, ui) {
             $($(ui.draggable).parents("tr")[0]).appendBranchTo(this);            
},
            hoverClass: "accept",
            over: function(e, ui) {
              if(this.id != $(ui.draggable.parents("tr")[0]).id && !$(this).is(".expanded")) {
                $(this).expand();
              }
            }
          });
        });
Nun will ich aber den Ordner in der Datenbank via Ajax ja updaten, das problem ist dass die Funktion appendBranchTo immer ausgeführt wird, auch wenn ich den Parent Ordner ins eigene Child schieben will, was natürlich nicht funktioniert.

Die Funktion appendBranchTo liefert mir lediglich das jquery Objekt zurück.

Wie will ich nun also wissen ob ich den Ordner updaten muss oder nicht?

Ich hole mir das Klassen Attribut des Ordners ( in dem Fall eine Table row ) vor dem appendBranchTo und nachher, vergleiche dabei ob sich die child-of-node-{ID} verändert hat oder nicht. Wenn ja führe ich dann das Update auf der Datenbank via Ajax aus.

Mein Problem ist jetzt von dem Klassen Attribut nur die ID zu bekommen welche an child-of-node angehängt wird.

Eigentlich ein Kinderspiel müsste man meinen

Kannst du mir da helfen?

Gruss

eXe
__________________
It's not a bug. It's a feature!
da.eXecutoR ist offline   Mit Zitat antworten
Alt 14.01.2011, 17:36  
Erfahrener Benutzer
 
Registriert seit: 08.08.2009
Beiträge: 195
PHP-Kenntnisse:
Fortgeschritten
da.eXecutoR befindet sich auf einem aufstrebenden Ast
Standard

Okay ich hab in der Klasse sonst keine Ziffern, vom dem her gehts auch so:

Code:
$("#projectTree .folder").each(function() {
          $($(this).parents("tr")[0]).droppable({
            accept: ".file, .folder",
            drop: function(e, ui) {
              var parentOld  = $($(ui.draggable).parents("tr")[0]).attr("class").match(/[0-9]/);
              $($(ui.draggable).parents("tr")[0]).appendBranchTo(this);
              var parentNew  = $($(ui.draggable).parents("tr")[0]).attr("class").match(/[0-9]/);
              if(parentOld != parentNew){
                  alert(parentOld + '-->' + parentNew);
              }
            },
            hoverClass: "accept",
            over: function(e, ui) {
              if(this.id != $(ui.draggable.parents("tr")[0]).id && !$(this).is(".expanded")) {
                $(this).expand();
              }
            }
          });
        });
Nur funktioniert der Vergleichsoperator nicht, der wirft mir auch einen Alarm wenn parentOld 0 ist und parentNew 0?

Brauch ich im javascript einen anderen Operator?

Gruss

eXe
__________________
It's not a bug. It's a feature!
da.eXecutoR ist offline   Mit Zitat antworten
Alt 14.01.2011, 18:42  
Moderator
 
Benutzerbild von Chriz
 
Registriert seit: 11.05.2008
Beiträge: 6.266
Chriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer Anblick
Standard

Hi,

also ich mach das immer so, dass ich in der Klasse die Art angebe und bei der ID dann die ID hinterlege

<div class="treenode" id="treenode-5">

Dann kannst du mit jQuery eigentlich ganz gut drauf zugreifen:
Code:
$('.treenode').each(function(i, node) {
  console.log($(this).attr('id').split('-')[1]);
});
Falls es mehrere der selben ID geben sollte (ist ja nicht auszuschließen), dann füge ich noch einen Randomkey mit in die ID. Der JS-Code bleibt der gleiche.

Edit: Falls du zufällig die Daten per Parent-ID ablegst, kannst du diese Klasse (oder den Algorithmus) von mir nutzen:
http://www.php.de/scriptboerse/54684...eferences.html (PHP: Zirkuläre Referenzen / Circular References)
um "zirkuläre Referenzen" herauszufinden, also genau das Problem, dass du hast, wenn du ein Elternelement einem eigenen Kindelement zuordnest (wodurch ja ein Ring entsteht, den die Klasse erkennt)
__________________
"Nuschel ich?" - "Was?"
Chriz ist offline   Mit Zitat antworten
Alt 14.01.2011, 18:42  
Erfahrener Benutzer
 
Registriert seit: 28.05.2008
Beiträge: 2.094
PHP-Kenntnisse:
Fortgeschritten
rudygotya ist einfach richtig nettrudygotya ist einfach richtig nettrudygotya ist einfach richtig nettrudygotya ist einfach richtig nettrudygotya ist einfach richtig nett
Standard

Das hier
PHP-Code:
$($(ui.draggable).parents("tr")[0]) 
ist Quatsch.
Warum ist denn child-of-node-{ID} nicht wirklich eine ID? Dann kannste dir auch das match sparen.

grüße


Basti
__________________
++++ Wieder einer ins Netz gegangen: Phishers Fritz zufrieden ++++
Blog
rudygotya ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine 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
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[Erledigt] Verzweiflung mit RegEx, möchte Zeichenfolge in Dokument auslesen/ersetzen seito PHP Tipps 2010 2 17.09.2010 23:06
Brauche Unterstützung Vince Sonstige 0 21.03.2010 16:22
[Erledigt] regex | variables wort herausfiltern Knechtle PHP Tipps 2010 6 05.03.2010 17:21
regex bibliothek brian johnson Software-Design 9 19.10.2009 16:23
Array sortieren mit regex Lupi PHP Tipps 2008 3 21.07.2008 15:17
Regex: Auslesen der Meta-Tags einer Webseite Sucheingrenzung pepe24 PHP Tipps 2008 12 31.05.2008 15:41
2 Regex in PHP kompatible Syntax übersetzen NoiZy PHP-Fortgeschrittene 6 07.04.2008 09:04
Regex Link Problem Broadcast PHP Tipps 2008 2 29.02.2008 16:30
[gelöst :D ] regex tuts nur einmal pro zeile notyyy PHP Tipps 2008 17 24.09.2007 15:40
RegEx für Mail-Adresse (Bitte prüfen!) vollkommenegal PHP Tipps 2006 13 20.11.2006 20:02
RegEx findet Stringvorkommen nicht PHP Tipps 2007 6 08.12.2005 21:52
RegEx PHP Tipps 2005 24 04.06.2005 10:27
Regex für attribute in quelltexten robo47 PHP Tipps 2005 6 27.01.2005 18:29
Dringend: RegEx zur bearbeitung vom Dateipfaden... PHP Tipps 2005 5 12.01.2005 10:59
[Erledigt] Regex für selektives Replacement PHP-Fortgeschrittene 2 25.12.2004 15:57

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
treetable appendbranchto, d ad

Alle Zeitangaben in WEZ +2. Es ist jetzt 09:04 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum