Ich versuche, Profilseiten für mehrere Benutzer zu erstellen, die personalisierte photos/items
enthalten, die auf einem Server gespeichert sind. Diese Artikel sind labeled/named
mit dem Namen des Benutzers. Ein Benutzer hat eine FirstName
& LastName
, mit der Option, eine PreferredName
zu verwenden.Überprüfen Sie, ob die Datei vorhanden ist, indem Sie zwei unterschiedliche Namenskonventionen mit jQuery/JS überprüfen.
Anfänglich wurden die Elemente mit PreferredName über Vorname benannt, wenn ein bevorzugter Name vorhanden war. (Ex: Fname: Robert; Lname: Smith; Pname: Bobby; FileName = SmithBobby.file
)
Leider nun der Benutzer die Möglichkeit, ihren Namen von PreferredName auf ihrem Profil zu ändern, hat zurück zu FirstName
, was zu einem großen Teil von Profilen für die falsche Datei zu suchen (Punkt ist SmithBobby.file
tatsächlich genannt, während das Profil für SmithRobert.file
sucht.)
Nachdem dies gesagt ist, würde Ich mag für das Element mit beiden Namenskonventionen (FirstLast.file
& PreferredLast.file
) überprüfen, wenn keine vorhanden ist, sollte es den Standard/generic Foto verwenden Standard. (default.file
)
Das folgende Beispiel zeigt, wie ich derzeit überprüfe, ob der Benutzer einen Lebenslauf und Profilbild in der Datei hat. Wenn kein Lebenslauf vorhanden ist, wird das Element von der Seite entfernt. Wenn das Bild nicht existiert, wird standardmäßig default.jpg
angezeigt.
if (($.PageData.PreferredName == "") || ($.PageData.PreferredName == null)) {
$("#Name").text($.PageData.FirstName + " " + $.PageData.LastName);
document.title = ($.PageData.FirstName + " " + $.PageData.LastName + " | Profile");
$("#BioPageTitle").text($.PageData.FirstName + " " + $.PageData.LastName);
} else {
$("#Name").text($.PageData.PreferredName + " " + $.PageData.LastName);
document.title = ($.PageData.PreferredName + " " + $.PageData.LastName + " | Profile");
$("#BioPageTitle").text($.PageData.PreferredName + " " + $.PageData.LastName);
}
//FILENAME BUILD
var file_name = ($.PageData.LastName + $.PageData.FirstName);
var second_fname = ($.PageData.LastName + $.PageData.PreferredName);
file_name = file_name.replace(/[^0-9a-z]/gi, '');
second_fname = second_fname.replace(/[^0-9a-z]/gi, '');
var vita = $('#Vita');
var vita_url = "vita/" + file_name + ".pdf";
var second_vitaURL = "vita/" + second_fname + ".pdf";
var VitaLink = $("<a>").attr({
href: vita_url,
target: '_blank'
}).html("<strong>Curriculum Vitae</strong>");
$.get(vita_url)
.done(function() {
vita.html(VitaLink);
}).fail(function() {
vita.remove();
});
/*PHOTO BUILD/CHECK */
//PROFILE PICTURE
var img = $('#ProfilePicture');
var default_url = "photos/default.jpg";
var img_url = "photos/" + file_name + ".jpg";
img.error(function() {
$(this).attr('src', default_url);
});
img.attr('src', img_url);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
Vielen Dank, das hat perfekt funktioniert. Ich habe versucht, etwas Ähnliches zu tun, indem ich die Haupt-URL gleich der SecondURL innerhalb der Fail-Funktion gesetzt habe, aber nicht in der Lage war, sie zur Arbeit zu bringen, es war nicht vorgekommen, beide innerhalb desselben Aufrufs zu überprüfen. Vielen Dank! –