如何在php文件中调用jquery函数

时间:2016-12-17 01:42:26

标签: javascript php jquery

我正在处理一个项目,我的问题是调用这样的jQuery函数将它放在我的php文件中。我经常尝试搜索,但我总是会出错:

功能:

$(function(){
 $(".panorama-view").panorama360();
 });

Php文件

<?php

echo '<link rel="stylesheet" href="/css/panorama360.css" rel="stylesheet" >';
echo '<script src="/js/jquery.mousewheel.min.js" ></script>';
echo ' <script src="/js/jquery.panorama360.js" ></script>';
echo '<script>  $(function(){ $(\'.panorama-view\').panorama360(); }); </script>';
echo '</script>';

 if(isset($_POST['upload'])) {

 $image_name= $_FILES['image']['name'];
 $image_type= $_FILES['image']['type'];
 $image_size= $_FILES['image']['size'];
 $image_tmp= $_FILES['image']['tmp_name'];

 if(move_uploaded_file($image_tmp,"uploadedimg/$image_name"))
 {
     echo "<script type='text/javascript'>alert('File Uploaded!');</script>";
 }
$folder= "uploadedimg/";
if(is_dir($folder)) {

    if($handle = opendir($folder)){
        while(($file= readdir($handle)) !=false){
            if($file === '.' || $file === '..') 
                continue;
            echo '<div class="panorama round" style=" width:1200px; height:500px; padding:10px ;background-color:#444; position: relative;">';
            echo '<div class="panorama-view">';
            echo '<div class="panorama-container">';
            echo '<img src="uploadedimg/'.$file.'" data-width="4077" data-height="500" alt="Panorama" />';
            echo '</div>';
            echo '</div>';
            echo '</div>';
        }
         closedir($handle);
    }   
}     
} ?>

1 个答案:

答案 0 :(得分:1)

您收到 Uncaught ReferenceError: jQuery is not defined Uncaught ReferenceError: $ is not defined 错误(如您在帖子评论中的共享screenshot中所示) )因为你没有在项目中包含jQuery库。

两个错误都是相同的,并指出了与上述相同的问题。

请注意,您不能在不使用jQuery库的情况下使用 panorama360 ,因为它(jQuery库)是必需的依赖项。

要在项目中包含jQuery库,您有两(2)个主要选项;之一:

您可以通过将其包含在项目中从内容投放网络(CDN)使用它,如下面的代码段所示,

<script
    src="https://code.jquery.com/jquery-3.1.1.min.js"
    integrity="sha256-hVVnYaiADRTO2PzUGmuLJr8BLUSjGIZsDYGmIJLv2b8="
    crossorigin="anonymous"></script>

,或者

直接从您存储的位置下载和引用它

<script src="/path/to/jquery-3.1.1.min.js"></script>

最后一个选项与上面提到的两个相结合,使用一个作为优雅的故障转移;这是插图:

<script
    src="https://code.jquery.com/jquery-3.1.1.min.js"
    integrity="sha256-hVVnYaiADRTO2PzUGmuLJr8BLUSjGIZsDYGmIJLv2b8="
    crossorigin="anonymous"></script>
<script>window.jQuery || document.write('<script src="path/to/jquery-3.1.1.min.js"><\/script>')</script>

(通过上述内容,您可以通过从CDN中使用jQuery库来使用jQuery库,并在以后失败时自动加载服务器上的版本。更多详细信息here)< / em>的

请注意,jQuery库声明应该在引用panorama360 JavaScript资源之前发生,这一点非常重要。之一:

<script
    src="https://code.jquery.com/jquery-3.1.1.min.js"
    integrity="sha256-hVVnYaiADRTO2PzUGmuLJr8BLUSjGIZsDYGmIJLv2b8="
    crossorigin="anonymous"></script>
<script src="/js/jquery.mousewheel.min.js"></script>
<script src="/js/jquery.panorama360.js" ></script>

如果您选择使用PHP echo() 功能来处理文件包含,请使用单引号或转义双引号。 ...更多详情here

所以,你应该做这样的事情:

<?php
echo "<link rel='stylesheet' href='/css/panorama360.css'>";
echo "<script
    src='https://code.jquery.com/jquery-3.1.1.min.js'
    integrity='sha256-hVVnYaiADRTO2PzUGmuLJr8BLUSjGIZsDYGmIJLv2b8='
    crossorigin='anonymous'></script>";
echo "<script src='/js/jquery.mousewheel.min.js'></script>";
echo "<script src='/js/jquery.panorama360.js'></script>";
echo "<script>$(function(){ $('.panorama-view').panorama360(); });</script>";

在不使用PHP的原始HTML方式的情况下引用您的资源,如下面的评论中讨论的那样,

<?php
    // Should you want to run any PHP codes before referencing your resources,
    // you may do so here.
    // Remember: you MUST close this section as below this comments so as to
    // mark the end of your PHP code
?>
<link rel="stylesheet" href="/css/panorama360.css">
<script
    src="https://code.jquery.com/jquery-3.1.1.min.js"
    integrity="sha256-hVVnYaiADRTO2PzUGmuLJr8BLUSjGIZsDYGmIJLv2b8="
    crossorigin="anonymous"></script>
<script src="/js/jquery.mousewheel.min.js"></script>
<script src="/js/jquery.panorama360.js"></script>
<script>$(function(){ $('.panorama-view').panorama360(); });</script>

<?php
    // Here, other PHP codes
?>