2017-08-02 4 views
0

Ich versuche, ein Bild anzuzeigen, wo der Bildname von einer MySQL-Abfrage über JSON stammt.JQuery browser console Fehlermeldung

Meine JSON:

[{"data":[{"ClientImageName":"1_logo.png","ClientName":"Name","RoomName":"Room 2","RoomFromTime":"06:00","RoomToTime":"17:00"},{"ClientImageName":"1_logo.png","ClientName":"Name","RoomName":"Room 6","RoomFromTime":"06:00","RoomToTime":"23:00"},{"ClientImageName":"1_logo.png","ClientName":"Name","RoomName":"Room 1","RoomFromTime":"07:00","RoomToTime":"17:00"},{"ClientImageName":"1_logo.png","ClientName":"Name","RoomName":"Room 18","RoomFromTime":"07:00","RoomToTime":"23:00"}]}] 

Die jQuery, die die Daten liest, ist:

$(document).ready(function() { 
    function get_data() { 
     $.getJSON("get_data_logos.php", function(json){ 
      json = json[0].data; 
      var tr ; 

      for (var i = 0; i < json.length; i++) { 
       tr = $('<tr/>'); 
       tr.css("border-bottom","2px solid #FFF"); 
       tr.append("<td width='33%'><div class='clientimage-text'><img src='../../../../conf_images/boards/'" + json[i].ClientImageName + "></></div></td>"); 
       tr.append("<td width='33%'><div class='clientname-text'>" + json[i].ClientName + "</div></td>"); 
       tr.append("<td width='33%'><div class='roomname-text'>" + json[i].RoomName + "</div></td>"); 
       tr.append("<td width='33%'><div class='time-text'>" + json[i].RoomFromTime + " - " + json[i].RoomToTime + "</div></td>"); 
       $('table').append(tr); 
      } 
     }); 
    } 
    get_data(); 
    setInterval(get_data,60000) 
}); 

Die Linie, die das Bild hat, ist:

tr.append("<td width='33%'><div class='clientimage-text'><img src='../../../../conf_images/boards/'" + json[i].ClientImageName + "></></div></td>"); 

Als ich das Skript ausführen nur Ein Platzhalter für das Bild wird angezeigt. Wenn ich auf die Konsole schaue, sehe ich die folgende Meldung "Sie sind nicht berechtigt auf/apps/conf/conf_images/boards/ auf diesem Server zuzugreifen."

Wenn ich den Bildnamen fest Code es funktioniert gut.

Meine Frage ist habe ich die JQuery korrekt in Bezug auf die Codezeile geschrieben:

tr.append("<td width='33%'><div class='clientimage-text'><img src='../../../../conf_images/boards/'" + json[i].ClientImageName + "></></div></td>"); 

Wenn ich die Zeile Code inspizieren ich sehe:

<img src="../../../../conf_images-boards/" 1_logo.png=""> 

und es sollte

sein
<img src="../../../../conf_images-boards/1_logo.png>. 
+0

Hallo, Sie versuchen, ändern Erlaubnis Ordner conf_images/boards/mit 'chmod 755'? –

+0

@Guillermo Andres Fuentes Moral Hallo, sie sind bereits 755. sogar 777 ohne Freude versucht. Wie ich sage, wenn ich einen Image-Namen aus dem gleichen Ordner fest codiere, funktioniert es gut. Da die Bildnamen jedoch dynamisch sind, muss der Name der Variablen aus dem Json stammen. – DCJones

+0

Sie versuchen, für Konsole diese 'json [i] .ClientImageName' zu ​​drucken und zu überprüfen, ob Ihr relativer Pfad in Ordnung ist, glaube ich, Ihr relativer Pfad, kann diesen Fehler provoziert –

Antwort

2

Diese Zeile:

tr.append("<td width='33%'><div class='clientimage-text'><img src='../../../../conf_images/boards/'" + json[i].ClientImageName + "></></div></td>"); 

hat falsche Quotierung. Sie wollen:

tr.append("<td width='33%'><div class='clientimage-text'><img src='../../../../conf_images/boards/" + json[i].ClientImageName + "'></></div></td>"); 
+1

gut spotter. Ich habe das stundenlang angeschaut. – DCJones

+0

Prost, es passiert uns allen! – wmorrell