Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > Web Development
You last visited: Today at 01:20

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



Problem bei der richtigen Ausgabe

Discussion on Problem bei der richtigen Ausgabe within the Web Development forum part of the Coders Den category.

Reply
 
Old   #1

 
.MaisKolben™'s Avatar
 
elite*gold: 24
Join Date: May 2009
Posts: 1,165
Received Thanks: 1,222
Problem bei der richtigen Ausgabe

Hallo Freunde der Coding Section.

Hier mein Problem:

Ich habe eine for function welche mir Daten aus Json Datenbanken in eine HTML Tabelle optisch ausgibt. Da diese ganzen Json Datenbanken per API aufgerufen werden benötige ich natürlich auch Authentifizierungen mit XMLHttpRequest. Soweit so gut, keine großen Probleme.

Das ganze dient zur einer optischen Ausgabe von Berichten. Die Tabelle besteht somit aus einer Frage und einer Antwort Spalte. Fragen funktionieren Problemlos, bei den Antworten kommen dann aber die Probleme.

So werden Text Antworten mithilfe von for Schleifen ausgeben, genau so wie Auswahl-Antworten (yes, no, partly). Nun scheitert es bei den Bildern.

Ausgegeben bekomme ich in der Antwort-Json nur die guid des Bildes und habe diese dann per API Aufruf in meine Tabelle verfrachtet. Das Problem, dass die ausgegebenen Bilder alle nur bei der letzten Frage statt bei den einzelnen richtigen Fragen ausgegeben werden.

Beispiel im Screenshot:


getImage Function:
Code:
function getImage(image){
        var xhr = new XMLHttpRequest();
        xhr.open('GET', + url + 'api/pictures/' + image, true);
        xhr.setRequestHeader('Authorization', getAuthCookie());
        xhr.responseType = 'arraybuffer';

        xhr.onload = function(e) {
            if (this.status == 200) {
                var uInt8Array = new Uint8Array(this.response);
                var i = uInt8Array.length;
                var biStr = new Array(i);
                while (i--)
                { biStr[i] = String.fromCharCode(uInt8Array[i]);
                }
                var data = biStr.join('');
                var base64 = window.btoa(data);

                tr.append('<td><img src="data:image/jpg;base64,' + base64 + '" height="20%" width="20%"/></td>');
            }
        };

        xhr.send();
    }
Aufruf der Function und der gesamte Codeteil:
Code:
var tr;

    for (var i = 0; i < obj1.Forms[f].Questions.length; i++) {

        var found = false;

        for(var x = 0; x < obj2.length; x++) {

            if(obj2[x].QuestionID == obj1.Forms[f].Questions[i].QuestionID) {
                tr = $('<tr/>');
                tr.append("<td>" + obj1.Forms[f].Questions[i].Caption + "</td>");
                tr.append("<td>-</td>");

                if(obj2[x].Text != undefined && obj2[x].Text != null) {
                    tr.append("<td>" + obj2[x].Text + "</td>");
                } else if(obj2[x].Choices != undefined && obj2[x].Choices != null) {
                    var choices = "";
                    obj2[x].Choices.forEach(function(e) {
                        obj1.Forms[f].Questions[i].Choices.forEach(function(c) {
                            if(c.ChoiceID == e) {
                                if(choices != "") choices += "<br />";
                                choices += c.Caption;
                            }
                        });
                    });

                    tr.append("<td>" + choices + "</td>");
                } else if(obj2[x].Picture != undefined && obj2[x].Picture != null) {
                    getImage(obj2[x].Picture);
                }

                $('table').append(tr);

                found = true;
                break;
            }
        }

        if(!found) {

            tr = $('<tr/>');
            tr.append("<td>" + obj1.Forms[f].Questions[i].Caption + "</td>");
            tr.append("<td>-</td>");
            tr.append("<td>-</td>");
            $('table').append(tr);
        }
    }
ich bedanke mich für jede Hilfe .

Gruß,
euer MaisKolben
.MaisKolben™ is offline  
Old 11/03/2015, 23:35   #2
 
MrDami123's Avatar
 
elite*gold: 56
Join Date: Oct 2010
Posts: 3,409
Received Thanks: 1,219
'getImage()' führt beim Abschluss 'tr.append()' aus und fügt die Bilder ans letzte 'tr' hinzu.

Wenn du möchtest, dass das Bild in die richtige 'tr' gelangt, sollte 'getImage()' den angefertigten <img> Tag zurückgeben und dann der ausgewählten 'tr' ( tr = $('<tr/>'); ) hinzugefügt werden.
MrDami123 is offline  
Old 11/04/2015, 09:39   #3

 
.MaisKolben™'s Avatar
 
elite*gold: 24
Join Date: May 2009
Posts: 1,165
Received Thanks: 1,222
Quote:
Originally Posted by MrDami123 View Post
'getImage()' führt beim Abschluss 'tr.append()' aus und fügt die Bilder ans letzte 'tr' hinzu.

Wenn du möchtest, dass das Bild in die richtige 'tr' gelangt, sollte 'getImage()' den angefertigten <img> Tag zurückgeben und dann der ausgewählten 'tr' ( tr = $('<tr/>'); ) hinzugefügt werden.
Klingt plausibel!
Hatte hier wohl den Durchblick verloren. Ich danke dir für deine schnelle Hilfe .

Gruß,
Mais
.MaisKolben™ is offline  
Old 11/04/2015, 11:51   #4
 
MrDami123's Avatar
 
elite*gold: 56
Join Date: Oct 2010
Posts: 3,409
Received Thanks: 1,219
Quote:
Originally Posted by .MaisKolben™ View Post
Klingt plausibel!
Probiers aus.
MrDami123 is offline  
Old 11/04/2015, 13:53   #5

 
.MaisKolben™'s Avatar
 
elite*gold: 24
Join Date: May 2009
Posts: 1,165
Received Thanks: 1,222
Quote:
Originally Posted by MrDami123 View Post
Probiers aus.
Folgendes Problem besteht nun aktuell:



getImage Function:

Code:
function getImage(image){
        var xhr = new XMLHttpRequest();
        xhr.open('GET', 'https://teamhaven.com/api/pictures/' + image, true);
        xhr.setRequestHeader('Authorization', getAuthCookie());
        xhr.responseType = 'arraybuffer';

        xhr.onload = function(e) {
            if (this.status == 200) {
                var uInt8Array = new Uint8Array(this.response);
                var i = uInt8Array.length;
                var biStr = new Array(i);
                while (i--)
                { biStr[i] = String.fromCharCode(uInt8Array[i]);
                }
                var data = biStr.join('');
                var base64 = window.btoa(data);

                return base64;
            }
        };

        xhr.send();
    }
Aufruf der Function:

Code:
} else if(obj2[x].Picture != undefined && obj2[x].Picture != null) {
                    console.log(getImage(obj2[x].Picture));
                    tr.append('<td><img src="data:image/jpg;base64,' + getImage(obj2[x].Picture) + '" height="20%" width="20%"/></td>');
                }
Würde mich über weitere Hilfe freuen .

Gruß,
Mais
.MaisKolben™ is offline  
Old 11/05/2015, 23:48   #6

 
snow's Avatar
 
elite*gold: 724
Join Date: Mar 2011
Posts: 10,479
Received Thanks: 3,318
Arrow General Coding -> Web Development

#moved…
snow is offline  
Old 11/17/2015, 17:11   #7

 
.MaisKolben™'s Avatar
 
elite*gold: 24
Join Date: May 2009
Posts: 1,165
Received Thanks: 1,222
Hat sich erledigt.
Kann geschlossen werden .

MfG
.MaisKolben™ is offline  
Old 11/18/2015, 00:06   #8


 
Menan's Avatar
 
elite*gold: 0
The Black Market: 169/0/0
Join Date: Sep 2008
Posts: 9,484
Received Thanks: 3,109
Kleiner Tipp am Rande:

In JS solltest du auf Gleichheit immer mit " === " prüfen und nicht nur mit " == ".
Menan is offline  
Reply


Similar Threads Similar Threads
PHP5 OOP, Problem bei Ausgabe
04/28/2012 - Web Development - 3 Replies
Hallo leute, ich habe ein kleines Problem bei einer Ausgabe. index.php <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-trans itional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head>
Playspan Problem - Punkte ausgabe!
12/11/2011 - WarRock - 7 Replies
Hey Warrocker und Community, Ich habe da ein Problem.. Ich habe mir 250 Punkte bei Playspan erfarmt.. jetzt möchte ich die gerne gegen einen 3-Day-Base-Pass oder 20 G1 einlösen.. Das Problem ist wenn ich im Warenkorb bin und auf "Continue Shopping" klicke komme ich auf die Startseite bzw. dem Marktplatz von Playspan, und wenn ich unten auf diesen Grünen Button klicke wo "Reedem Points" klicke um es mit Punkten zu bezahlen passiert nicht's. Kann mir da einer vllt. behilflich sein? Lieben...
Problem: Key allerdings nicht die richtigen CD's
06/12/2011 - Diablo 2 - 4 Replies
Hallo Community ;) Ich habe ein Problem. Ich bin 2x im Besitz von Diablo2. Eine relativ neue Hülle, und eine etwas ältere. In der neuesten Hülle habe ich noch alle CD's, aber in der alten habe ich garkeine mehr. Nun mein Problem: Der Key von der ersten Hülle: xxxxxx-xxxx-xxxxxx-xxxx-xxxxxx Key von der zweiten Hülle: xxxx-xxxx-xxxx-xxxx Nun lässt sich der zweite Key nicht mit den CD's von dem ersten key installieren.
[Sammelthread] Die richtigen Lösungen zum aktuellen Problem
06/02/2010 - WarRock - 15 Replies
Da mir in letzter Zeit aufgefallen ist, das hier viele "Problemlösungen" posten, habe ich mir gedacht das man das absofort hier reinposten kann. Ich werde das auch noch mit dem Moderator abklären. Fragen können hier auch gestellt werden :)



All times are GMT +1. The time now is 01:21.


Powered by vBulletin®
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2026 elitepvpers All Rights Reserved.