2017-06-07 1 views
0

C'est ce que dans le main_page.html:Comment passer l'identifiant de la vidéo dans la page principale à une autre page comme YouTube?

<img src="..." onclick="openVideoPlayer('j2umt3WZU8Q')" >

Après cliqué cette image, la forme cachée sera rempli et utiliser GET pour video.php

<!-- hidden form --> 
    <form id="openVideoPlayerForm" action="player.php" method="get"> 
     <input id="form-video-id" tpye="text" name="videoID" value="" hidden /> 
    </form> 

En video.php, Je crée d'abord des données GET dans JSON et j'appelle la fonction initPage() -> js pour assigner l'attribut id vidéo dans youtube embed.

$ video = $ _GET ['videoID'];

function initPage(){ var videoID = <?php echo json_encode($videoID) ?>; var videoPath = 'https://www.youtube.com/embed/' + videoID + 'rel=0&amp;showinfo=0'; $('#video-player').attr('src' , videoPath); }

La question est

1.

cela fonctionne pas si j'utilise la variable php en fonction js (Il est parce que je suis en utilisant PHP 7.1?)

var videoID = <?php echo json_encode($videoID) ?>;

2.

J'ai utilisé cette méthode pour implémenter ce "clone youtube" est-ce un bon moyen?

Dois-je utiliser ajax pour implémenter cette fonction?

Si oui comment faire.

image for description

+2

Ouvrez votre console, il dit "erreur de syntaxe". 'videoID +? 'rel = 0 & showinfo = 0'' devrait être' videoID +'? rel = 0 & showinfo = 0'' (Point d'interrogation à l'intérieur des guillemets) –

+0

@JeremyThille Ceci est mon erreur de frappe [édité maintenant], ce n'est pas un problème dans mon code d'origine –

Répondre

0

Faire VideoID une chaîne, ajouter des guillemets. Ceci est actuellement invalide:

var videoID = <?php echo json_encode($videoID) ?>; 

parce qu'il donne:

var videoID = X3pTXG9a1oQ; // Error : X3pTXG9a1oQ is not defined 

Ici encore, ouvrez votre console, il vous dira ce qui ne va pas.

Vous devez ajouter des citations:

var videoID = "<?php echo json_encode($videoID) ?>"; 

qui donnera:

var videoID = "X3pTXG9a1oQ"; // Valid 
+0

Ensuite, le php ne fonctionnera pas si je alerte (videoID); Il affichera: ; Ce qui signifie que js va penser que c'est une longue chaîne –

+0

Quoi? Non, le code PHP sera interprété. Vous ne pouvez pas le voir côté client. Il est rendu sur le serveur, puis envoyé au client. –

+0

Je veux dire si j'implémente votre code var videoID = ""; et alerte (videoID); le navigateur me montrera même que "" Pas "X3pTXG9a1oQ" –

0

Voici une présentation rapide et de base de ce que vous devriez avoir

<?php 
$video = $_GET['videoID']; 
?> 
<!DOCTYPE html> 
<html> 
<body> 
<script> 
function initPage(){ 
    var videoID = ''+<?php echo $video ?>+''; 
    var videoPath = 'https://www.youtube.com/embed/' + videoID + 'rel=0&amp;showinfo=0'; 
    $('#video-player').attr('src' , videoPath); 
} 
</script> 

..... your other content and code..... 

</body> 
</html>