2017-01-24 6 views
0

Ich bin Neuling. Ich habe den folgenden Code:Fehler bei der Verwendung von AJAX in PHP

Datei PHP:

<div class="video" id="result"></div> 
<script 
    src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script> 
<script type="text/javascript"> 
    $.ajax({ 
     type: 'POST', 
     url: 'player.php', 
     data: { 
      id: 'http://youtube.com/watch?v=fY7RT9_QM1a' 
     }, 
     dataType: 'html', 
     success: function(data) { 
      $("#result").html(data); 
     }, 
     error: function() { 
      alert('error'); 
     } 
    }); 
</script> 

Datei PHP:

function Demoplugin_jw($link) { 
 
\t $Demoplayer .= " 
 
\t <script type='text/javascript' src='".plugins_url(
 
         'player/Jwplayer7/jwplayer.js', __FILE__)."'></script> 
 
\t <div id='jw'></div> 
 
     <script type='text/javascript'> 
 
\t \t jwplayer('jw').setup({ 
 
\t \t \t primary: 'html5', 
 
\t \t \t width: '100%px', 
 
\t \t \t height: '100%px', 
 
\t \t \t aspectratio: '16:9', 
 
\t \t \t skin: 'bekle', 
 
\t \t \t sources: ".Demoplugin($link)." 
 
     }) 
 
    </script>"; 
 
\t return $Demoplayer; 
 
} 
 
function Demoplugin($link){ 
 
    ..... 
 
    .... 
 
    $sources .= {file:"'.$value.'",type:"mp4",label:"'.$key.'"}; 
 
    $sources = '['.rtrim($sources, ',').']'; 
 
    return $sources; 
 
} 
 

 
if(isset($_POST['id'])) { 
 
\t echo Demoplugin_jw($_POST['id']); 
 
}

ich zeigen will Ergebnis der Funktion Demoplugin_jw zum <div id="result"> .

Aber ich immer Fehler:

alert("error") 
+0

Sind Sie sicher, dass Ihre js-Datei ordnungsgemäß ohne Fehler in der Konsole geladen wurde? – Shubhranshu

+0

Sie vermissen 'header ('Content-type: javascript/json');' wenn Sie eine Antwort zurücksenden. – KDOT

+0

Das ist nicht gut '$ Demoplayer. =' Sie müssen es zuweisen, bevor Sie '. =' So '=' zuerst tun oder Sie erhalten eine undefinierte Variable Warnung in PHP 5.5 ish – ArtisticPhoenix

Antwort

0

Dies kann leicht in JavaScript erreicht werden, da es sich um eine JavaScript-API ist. Hier speichern wir den YouTube-v-GET-Wert in einem data-Attribut. Dies weist die ID dann dem Wrapping-Div zu, der das Video enthält, und verwendet diese Daten als ID, sodass Sie mehrere Videos auf einer Seite haben können.

$(function() { 
 
    $('.youtube-link').click(function() { 
 
    var wrapper = document.createElement('div'); 
 
    wrapper.id = $(this).attr('data'); 
 
    $(this).append(wrapper); 
 
    var $sources = { 
 
     file: 'http://youtube.com/watch?v=' + $(this).attr('data'), 
 
     type: 'mp4' 
 
    }; 
 
    jwplayer($(this).attr('data')).setup({ 
 
     primary: 'html5', 
 
     width: '100%px', 
 
     height: '100%px', 
 
     aspectratio: '16:9', 
 
     skin: 'bekle', 
 
     sources: $sources 
 
    }); 
 
    }); 
 
    $('.youtube-link').forEach(function($link) { 
 
     $($link.attr('data')).click(function() { 
 
      $(this).remove(); 
 
     }); 
 
    }); 
 
});
.youtube-link { 
 
    background: #efefef; 
 
    padding: 25px; 
 
    margin: 10px; 
 
    cursor: pointer; 
 
    width: 100px; 
 
    border: 1px solid #000; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<!-- todo: add this link --> 
 
<script src="link_to_your_jwPlayer"></script> 
 

 
<div class="youtube-link" data="JzYRZygjJrI">Watch JzYRZygjJrI</div> 
 
<div class="youtube-link" data="wySpzs5S1Eg">Watch wySpzs5S1Eg</div>

Dies wird Code nicht getestet, da ich keinen Zugriff auf die Datei jwplayer.js haben. Ändern Sie das einfach nach Bedarf. PS - Sie müssen das Styling hinzufügen.

+0

Danke für die Antwort! Aber ich möchte AJAX benutzen. Und ich bekomme Quellvideo von youtube, ich bekomme nicht iframe – justcntt

+0

, aber alles, was Sie tun, ist in den Link als eine Funktion übergeben, mit AJAX ist nur ein langsamer und weniger wartbarer Prozess. Es ist auch klar, dass deine PHP-Fähigkeiten nicht sehr gut sind, also warum solltest du es schwerer machen, wenn du es einfach nur funktionieren lässt? @justcntt – KDOT

+0

Vielen Dank @KDOT sehr! Jetzt funktioniert mein Code! – justcntt

Verwandte Themen