Seite 1 von 1
Frage zu JSON
Verfasst: 27.01.2012, 13:28
von Unser-Spielzeug
Hallo,
vielleicht kann mir hier jemand helfen, wie ich mein Problem lösen kann.
Ich habe einen Shop und setze eine automatische Preisaktualisierung für Produkte ein, für zum Beispiel verschiedene Größen, die dann unterschiedlich teuer sind (also mit Aufpreis).
Ich möchte die Funktion nun etwas verändern.
Hier ein Ausschnitt aus dem Code:
Code: Alles auswählen
if(typeof(data.items)!='undefined'){
// now give the new data
$.each(data.items, function(json_id,json_data){
$(json_data.update_select).effect('highlight', {color:'#FE9A02'}, 750);
$(json_data.update_select).html(json_data.update_text);
});
Mit dem Befehl effect(hightlight) blinkt bei einer Aktualisierung des Preises der Background kurz auf.
Nun zur Frage: Kann man zum Beispiel irgendwie angeben, dass die Ausgabe des Preises in Fettschrift erfolgen soll?
Vielen Dank [/quote]
Verfasst: 27.01.2012, 15:14
von chris21
Der JSON Teil ist hier gar nicht relevant, sondern einfach jQuery oder was Du da verwendest. Damit man dort mal den Code sehen kann, um zu bestimmen, wo der Preis steht: hast Du einen Beispiellink parat? Ich habe kein Produkt mit verschiedenen Größen oder anderen Modifikatoren gefunden

Re: Frage zu JSON
Verfasst: 27.01.2012, 15:16
von 007
Müsste so funktionieren:
Code: Alles auswählen
if(typeof(data.items)!='undefined'){
$.each(data.items, function(json_id,json_data){
$(json_data.update_select).effect('highlight', {color:'#FE9A02'; font-weight:bold;}, 750);
$(json_data.update_select).html(json_data.update_text);
});
Verfasst: 27.01.2012, 15:36
von chris21
Hightlight ist wohl der ganze div, der eine Hintergrundfarbe bekommt für 750 Millisekunden. Da das font-weight auf bold zu setzen würde nicht nur den Preis sondern den gesamten div Inhalt betreffen, aber nur für 750 Millisekunden.
Daher brauchen wir eine Beispielseite, um es richtig nach den Vorstellungen einzubauen.
Verfasst: 27.01.2012, 15:59
von Unser-Spielzeug
Erst Mal vielen Dank für Eure Antworten.
@007 Leider funktioniert danach die Funktion nicht mehr, seltsamerweise!
@Chris21
Hier kannst du das Ganze mal sehen:
https://www.unser-spielzeug.de/shop-neu ... ::123.html
Und aussehen sollen die Preise so:
https://www.unser-spielzeug.de/shop-neu ... ::118.html
Verfasst: 27.01.2012, 16:11
von Synonym
Also einfach im CSS dem #new_price ein font-weight:bold; mitgeben.
Nachtrag: Im Beispiel wird es anders gemacht:
<span class="price"> 28,90 EUR</span>
Da gibt es also schon ein span.price
Ist somit auch eine Templatefrage. Musst halt an der entsprechenden Stelle einbauen.
Verfasst: 27.01.2012, 16:12
von chris21
Ich würde das Problem ganz anders lösen: gib einfach dem div mit der id=new_price zugleich die class=price, anstatt darin noch zusätzlich die span zu setzen. Dann stimmt auch das aussehen vor und nach dem call.
Oder eben dem #new_price die CSS Zuweisungen von .price ebenfalls zuordnen.
Das Problem entsteht dadurch, dass Du den Inhalt des div #new_price ersetzt und damit auch den span mit der classs .price löscht.
Alternativ könntest Du auch
Code: Alles auswählen
$(json_data.update_select).html(json_data.update_text);
mit
Code: Alles auswählen
$(json_data.update_select).html("<span class='price'>"+json_data.update_text+"</span>");
ersetzen.
Verfasst: 27.01.2012, 16:21
von Unser-Spielzeug
Hammer!
Cool, und Danke für Eure Antworten, habe es jetzt, so wie ich wollte

Verfasst: 27.01.2012, 16:27
von Unser-Spielzeug
Achso eine Sache habe ich noch

Wie kann ich denn noch mein Preisschild hinter der Aktualisierung erhalten?
Das wird irgendwie immer übergeblendet.
Verfasst: 27.01.2012, 16:57
von chris21
Liegt daran, dass es auch zum Inhalt des divs mit der id new_price gehört und der Inhalt überschrieben wird.
Quick and Dirty Lösung wäre z.B.:
hinter
Code: Alles auswählen
$(json_data.update_select).html(json_data.update_text);
einfügen:
Code: Alles auswählen
$(json_data.update_select).append('<img src="./images/preisschild.gif" align="absmiddle" style="margin-left:10px;" width="65" height="30">');
Aber empfehlenswerter wäre es, den Code so genau zu trennen, dass Du den Preis updaten kannst und der Rest bleibt und nicht neu gesetzt werden muss.
Ich weiß z.B. nicht, ob das Sale Logo immer und bei jedem Produkt drin sein soll...
Verfasst: 27.01.2012, 18:25
von Unser-Spielzeug
Prima

Habe es jetzt so eingebaut, wie du es geschrieben hast.
Funktioniert prima, reicht mir.
Wieder jemanden glücklich gemacht
