Sie können mit diesem ein wenig Sicherheitsproblem haben. Wenn es zu 100% clientseitig ist, wird es einfach sein, die Konsole zu umgehen, also würde ich einen Ajax-Aufruf für Ihr Flag vorschlagen und dann das entsprechende HTML zurückgeben. Das Tolle daran ist, dass Sie es überall auf der Seite wiederverwenden können.
[EDIT:. Offensichtlich benötigen Sie eine Variable für das Video zu übergeben, hat das Skript aktualisiert worden, dass zu reflektieren]
Kurz gesagt, fügen Sie in Ihren HTML, eine Klasse namens „checkLoggedIn“ (oder irgendetwas) zu den Links, die den modalen starten wird ...
<a href="a-script-that-handles-non-js-requests.php" data-videoID="somevideoID" class="checkLoggedIn">View my rad videos!</a>
Dann wird die modale (unter der Annahme Bootstrap hier)
<div class="modal fade" id="videoModal" aria-hidden="true" aria-labelledby="videoModal" role="dialog" tabindex="-1">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button>
<h4 class="modal-title">Modal title</h4>
</div>
<div class="modal-body">
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
<button type="button" class="btn btn-primary">Save changes</button>
</div>
</div><!-- /.modal-content -->
Dann in Ihrem bereit func ...
$(function() {
$('#videoModal').modal();
$(".checkLoggedIn").click(function(event) {
event.preventDefault();
let videoID = $(this).data('videoID');
$.get("check_login.php?videoID="+videoID, function(data) {
$(".modal-body").html(data);
$('#.videoModal').modal('show');
//show right now with .modal-body containing the returned
//HTML from the check_login.php script.
});
});
});
So onload, jedes Element mit "checkLoggedIn" eingestuft wird von etwas zu tun klickbare verhindert werden. Ein Ajax-Aufruf an ein serverseitiges Skript namens "check_login.php" wird ausgelöst, das Skript gibt den HTML-Code entweder für Ihre Anmeldung oder Ihre Videos zurück.
Der falsche Weg, es zu tun wäre eine Art "wenn" Aussage zu entscheiden, ob der Kerl eingeloggt ist oder nicht. Zeigen Sie dann das Modal.
[EDIT: Ihr PHP-Skript hat ein wenig mehr mit dem videoID zu tun]
<?php
if(dudeIsLoggedIn()){
$html = goGetTheHTMLForThisVideo($_GET['videoID']);
if($html){
echo $html;
} else {
echo "Sorry, the video isn't available";
}
} else { // dude isn't logged in
echo goGetTheHTMLForLoggingIn();
}
?>
Vielen Dank, Zaid! Aber ich werde mehrere Schaltflächen oder Links zum Klicken haben. Eine Seite könnte 6,7,8 oder 20 Videos enthalten, das bedeutet genauso viele Play Links.Wenn sie auf den Wiedergabe-Link klicken, möchte ich diesen Check ausführen und das entsprechende Video im Modal dynamisch anzeigen. – Donato
Weisen Sie dann jedem "btn" eine eindeutige ID zu und verwenden Sie diese Art von Code innerhalb der Schleife. Damit jedes Video über ein Skript verfügt. –
Ich könnte mehrere DIVs mit dem Video darin haben, aber ich brauche diese, um in einem modalen aufzutauchen. – Donato