Beiträge von Sarah1991

    Hallo,

    ein weiteres Problem ist, dass eine Funktion nur aufgerufen wird, wenn nach einer if-Abfrage ein alert ausgegeben wird.

    Ich arbeite mit einer WebSQL-Datenbank und möchte über die id (die ID-Spalte wird von der DB selbst erzeugt) die Daten einer Person in ein Formular laden, damit ich die Daten ggf. bearbeiten kann.
    Ich übergebe die ID an die URL und hole sie mir in der entpsrechenden Funktion wieder:

    JavaScript
    var url = document.URL;var rowid = url.substring(url.lastIndexOf("#")+1);

    Gehen wir nun davon aus, dass wir den ersten Eintrag der DB bearbeiten möchten, so ist die ID 1. Das stimmt soweit auch.

    Wenn ich nun die UPDATE-Abfrage ausführe, dann scheint die DB die ID nicht zu erkennen.
    Sobald aber ein

    JavaScript
    alert(rowid);

    vor der UPDATE-Ausführung steht, funktioniert es.
    Weiß jemand woran das liegen kann?


    Mit Hilfe einer Bekannten, habe ich den SQL-COde bereits überprüft und sie sagt, dass der Fehler ein JS-Fehler ist (sie kann mit JS aber nichts anfangen).
    Es wird weder die Error noch die Successfunktion aufgerufen.


    Hier die UPDATE-Abfrage:

    SQL
    database.transaction(function(transaction){				transaction.executeSql("UPDATE customerprofile SET firstname=?, lastname=?, mail=?, phonenumber=?, "+						"brand=?, model=?, buildingday=?, buildingmonth=?, buildingyear=?, kbanumberfirst=?, kbanumberlast=?, " +						"chassiscode=?, motorcode=?, transmissioncode=?, tuvmonth=?, tuvyear=?, oiloldmonth=?, oiloldyear=?, " +						"oiloldkilometer=?, oilnewmonth=?, oilnewyear=?, oilnewkilometer=?, timingbeltmonth=?, " +						"timingebltyear=?, timingebltkilometer=?, airfiltermonth=?, airfilteryear=?, " +						"airfilterkilometer=?, interiormonth=?, interioryear=?, interiorkilometer=?, " +						"fuelfiltermonth=?, fuelfilteryear=?, fuelfilterkilometer=?, transmissionfiltermonth=?, " +						"transmissionfilteryear=?, transmissionfilterkilometer=?, notes=? WHERE rowid=?", 						[firstname, lastname, mail, phonenumber, brand, model, buildingday,						buildingmonth, buildingyear, kbanumberfirst, kbanumberlast, chassiscode,						motorcode, transmissioncode, tuvmonth, tuvyear, oiloldmonth, oiloldyear,						oiloldkilometer, oilnewmonth, oilnewyear, oilnewkilometer, timingbeltmonth, 						timingebltyear, timingebltkilometer, airfiltermonth, airfilteryear, 						airfilterkilometer, interiormonth, interioryear, interiorkilometer, 						fuelfiltermonth, fuelfilteryear, fuelfilterkilometer, transmissionfiltermonth,						transmissionfilteryear, transmissionfilterkilometer, notes, rowid], updateSuccess, error);				});

    Hallo,

    ich füge ein div via JS hinzu:

    JavaScript
    if(numberOfCounts > 1){					$(".item--deleteBox").show();					$(".item--deleteBox").append("<span class='headline--deleteBox'>" + 					numberOfCounts + " Profile werden gel&ouml;scht?</span>" +					"<div class='row'><span class='column small-5'><img class='img--cancel' src='../img/delete.png'/></span>"+					"<span class='column small-5'><img class='img--deleteSuccess' src='../img/save.png'/></span></div>");				} else if(numberOfCounts == 1) {					$(".item--deleteBox").show();					$(".item--deleteBox").append("<span class='headline--deleteBox'>" + 					numberOfCounts + " Profil wird gel&ouml;scht?</span>" +					"<div class='row'><span class='column small-5'><img class='img--cancel' src='../img/delete.png'/></span>"+					"<span class='column small-5'><img class='img--deleteSuccess' src='../img/save.png'/></span></div>");				}


    Nun möchte ich auf die images img--cancel und img--deleteSuccess jeweils ein clickevent feuern, was aber nicht funktioniert:

    JavaScript
    $(".img--cancel").on("click", function(){		alert("click");		$(".item--deleteBox").hide();		$(".img--check").removeClass("isSelected");		$(".custom--checkbox").hide();
    	});


    Die ganze FUnktion sieht so aus:

    JavaScript
    function deleteCustomer(){
    	$(".nav__link--profileoverview.delete").on("click", function(){		if($(this).hasClass("firstTime")){			$(".custom--checkbox").show();			$(".nav__link--profileoverview.delete").removeClass("firstTime");			$(".nav__link--profileoverview.delete").addClass("secondTime");			$(".custom--checkbox").on("click", function(){				var target = $(this).children();				target.toggleClass("isSelected");				target.toggle();			});		} else {			$(".nav__link--profileoverview.delete").removeClass("secondTime");			$(".nav__link--profileoverview.delete").addClass("firstTime");			if($(".img--check").hasClass("isSelected")) {				var numberOfCounts = $(".img--check.isSelected").length;				if(numberOfCounts > 1){					$(".item--deleteBox").show();					$(".item--deleteBox").append("<span class='headline--deleteBox'>" + 					numberOfCounts + " Profile werden gel&ouml;scht?</span>" +					"<div class='row'><span class='column small-5'><img class='img--cancel' src='../img/delete.png'/></span>"+					"<span class='column small-5'><img class='img--deleteSuccess' src='../img/save.png'/></span></div>");				} else if(numberOfCounts == 1) {					$(".item--deleteBox").show();					$(".item--deleteBox").append("<span class='headline--deleteBox'>" + 					numberOfCounts + " Profil wird gel&ouml;scht?</span>" +					"<div class='row'><span class='column small-5'><img class='img--cancel' src='../img/delete.png'/></span>"+					"<span class='column small-5'><img class='img--deleteSuccess' src='../img/save.png'/></span></div>");				}
    			} else {				$(".custom--checkbox").hide();			}		}	});	$(".img--cancel").on("click", function(){		alert("click");		$(".item--deleteBox").hide();		$(".img--check").removeClass("isSelected");		$(".custom--checkbox").hide();
    	});}


    Woran kann das liegen?

    Danke und Grüße,
    Sarah

    Hey, danke für die Mühe^^
    So ist der Code definitv wartbarer. SOllte ich mir gleich mal angewöhnen...
    Das And habe ich schonmal dazwischen gehabt, aber leider hat das nicht geklappt.
    Hatte auch erstmal nur 2 spalten versucht zu editieren, aber auch das wollte nicht.
    Es geht jetzt. Das AND war der Fehler und ich muss die beiden Attribute in den eckigen Klammern am Ende angeben.

    Hallo zusammen,

    ich schon wieder...  :thumbup:

    Ich sitze an einer SQL-Updateabfrage. Wenn ich keine Bedingung angebe, dann wird die ganze Datenbank geupdatet. Wenn ich die Bedingung drin stehen habe, dann passiert gar nichts...  ?( Sory ich bekomme es nicht richtig eingerückt...
    Hier die Funktion:

    firstname und lastname sind die Datenbankspalten und personFirstname und personLastname sind Objekte.

    Ja, so meine ich es ja^^
    Aber ich will ja nicht alle Einträge löschen, sondern zum Beispiel nur 5 oder mal nur 1 oder so.

    Also
    1. Klcik auf Mülleimer
    2. Öffne Div um die zu wählen, die ich löschen möchte
    3. wenn alle gewollten eintäge angewählt sind klicke auf mülleimer
    4. neues div mit der frage X Einträge löschen? öffnet sich
    5. entweder abbruch wählen oder löschvorgang bestätigen

    also der kasten ist ein div und nein, das ist ja das problem. Ich möchte ja nicht alle auf einmal löschen sondern nur bestimmte.
    das heißt, nach dem du auf den mülleimer geklickt hast, öffnen sich die kästen und dann soll man die möglichkeit bekommen, bestimmte einträge zu löschen.

    im moment wählt er alle an, da die haken gleich heißen... ich möchte wissen, wie ich bestimmen kann, welcher kasten und welcher nicht angewählt wird.
    also nur einer und nicht alle....

    Ich habe in meinen Adressbucheinträgen jeweils den Namen der Person mit übergeben, da ich nicht wusste, wie ich den Haken für den Löschvorgang in jedem div einzeln setzen kann.

    Meine divs werden in Javascript erzeugt:

    deshalb heißt die klasse für das div und den haken gleich.

    Wenn ich also nur den Haken für bspw. den Eintrag "Sarah" setzen will, setzt er mir gleich alle, da ja alle gleich heißen. Ich wollte das mit event.target umgehen und nur den einen Eintrag anwählen können.

    Die Ausgabe ergibt 4x das Gleiche (ich habe im Moment 4 Einträge) und das zweite console.log ergibt auch das Gleiche, nur dass beim zweiten mal Klicken das console.log zweimal aufgerufen wird... Ist etwas kompliziert ausgedrückt 8|

    Hallo,

    ich schreibe gerade eine Funktion, die einem Löschvorgang in einem Telefonbuch ähnelt.
    Klicke ich also auf das entsprechende Icon (hier nav--link--profileoverview.delete), öffnen sich quadratische divs (hier: item--checkbox), in denen man dann selektieren kann, welche Einträge gelöscht werden sollen.

    Das klappt aber irgendwie immer nur für bestimmte divs und nach einem reload der Seite funktioniert es dann wieder für andere divs....

    Wenn ich die anklicke, wo es nicht funktioniert, wird die css-Angabe display:none durch display: none überschrieben (es steht dann im browser:

    CSS
    element.style {
        display: none;
    }

    Woran liegt dasr?^^

    Hey, danke für eine Antwort.

    Also ich habe das ganze nun doch schon mit der DB getestet und bleibe bei der Datenbank schon an einer vorherigen Stelle hängen.

    Man gehe nun davon aus, dass die entsprechende Tabelle schon angelegt wurde (

    SQL
    CREATE TABLE usw.

    ).
    Wenn ich nun einen Kunden in diese Tabelle hinzufügen möchte, klappt das auch, allerdings wird das div ("nav--letter") nicht beachtet.

    Das span Element liegt in einem div in dem profiloverview.html Dokument:

    HTML
    <div class="row nav--slip">
    			<div class="column small-12">
    				<span class="nav--letter">A</span>
    			</div>
    		</div>

    Vielleicht weißt du, weshalb?

    Das

    JavaScript
    alert("Function");

    wird aufgerufen.

    EIn

    JavaScript
    alert("Test: " + $(".nav--letter").text());

    ergibt nur Test: -> hier steht nichts <-


    So sieht das ganze momentan aus:


    Und wie meinst du "dauerhaft" anklicken? :)

    Hallo zusammen,

    ich versuche via WebSQL Einträge zu speichern.
    Zunächst verwende ich Dummydaten, um die Funktionalitäten zu testen.

    Man möge sich an dieser Stelle bitte ein leeres Profil vorstellen, in dem der Nutzer neben einem Namen, einer KFZ-Marke und einem Modell auch andere Daten, wie bspw. Baujahr usw. eintragen kann. Klickt der Nutzer auf speichern, so soll
    ein div (nav--letter) in einer Profilübersicht erstellt werden. Wenn es noch keinen Namen mit dem entsprechenden Anfangsbuchstaben gibt, wird das div mit dem namen und dem Fahrzeug sichtbar. (Es ist in der Übersicht nun auf display none und wenn es dann den buchstaben noch nicht gibt, dann wird es visible) Bis hierhin funktioniert auch alles.

    Auf das div, das durch das Speichern erstellt wurde, kann man klicken, um ein detaillierteres Profil zu sehen. Nun sollen die Daten, die ich in dem Div erstellt habe, in dem Profil angezeigt werden. Leider funktioniert das nicht so, wie ich es möchte.
    Die Verlinkung funktioniert noch, aber sobald ich die Ansicht habe, werden die entsprechenden Daten nicht eingetragen.
    Die Konsolenausgabe sehe ich nur ganz kurz, was an der Zeile

    JavaScript
    window.open("../templates/customprofile.html", "_self");

    liegt.

    Was muss ich tun, damit die Funktion ihren Zweck erfüllt?

    Ist es an dieser Stelle sinnvoll, eher ein

    SQL
    SELECT * FROM profile

    zu nutzen?