2017-11-14 5 views
0

パーソナライズされたphotos/itemsを含む複数のユーザーのプロファイルページをサーバーに構築しようとしています。これらの項目は、ユーザーの名前を使用してlabeled/namedです。ユーザーにはFirstName & LastNameがあり、オプションにはPreferredNameを使用します。jQuery/JSを使用して2つの異なる命名規則をチェックしてファイルが存在するかどうかを確認します。

最初に、Preferred Nameが存在する場合はFirstNameよりもPreferredNameを使用してアイテムの名前が付けられました。 (例:Fname: Robert; Lname: Smith; Pname: Bobby; FileName = SmithBobby.file

残念ながら、ユーザーは、誤ったファイル(アイテムが実際にSmithBobby.fileという名前を探すためにプロファイルの大部分につながる、バックFirstNameにPreferredNameからプロフィールに自分の名前を変更する機能を持っていますプロファイルはSmithRobert.fileを探している間。)

これは言われて、私はどちらが存在しない場合、それはデフォルトの/一般的な写真を使用するようにデフォルトで設定される必要があり、両方の命名規則(FirstLast.file & PreferredLast.file)を使用してアイテムをチェックしたいと思います。 (default.file

以下の例は、現在ユーザーがファイルにCVとプロフィール画像を持っているかどうかを確認する方法です。 CVが存在しない場合、要素をページから削除します。画像が存在しない場合は、デフォルトでdefault.jpgになります。

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>

答えて

1

あなたは最初の1に障害が発生した場合に、第2の1のためにチェックすることによって、最初のリンクをチェックし、あなたの現在の機能を拡張することができるはずです。 2番目の方法も失敗した場合は、エントリを削除することができます。

$.get(vita_url) 
    .done(function() { 
    vita.html(VitaLink); 
    }).fail(function() { 
    $.get(second_vitaURL) 
     .done(function() { 
     //modify the VitaLink with the correct url, if this doesn't work make a separate vitaLink type variable 
     VitaLink.attr('href', second_vitaURL); 
     vita.html(VitaLink); 
     }).fail(function() { 
     vita.remove(); 
     }); 
    }); 
+0

ありがとう、これは完全に機能しました。私は、メインURLをfailUp内のsecondURLと等しく設定するだけで同様のことを試みましたが、動作させることができず、同じ呼び出し内で両方をチェックすることができませんでした。ありがとう! –

関連する問題