2013-04-08 92 views
0

我试图导入图像使用PHP为HTML Ajax响应,但NivoSlider不加载的。 我找到了问题的原因。 我正在打印响应和正确的警报消息。NIVO滑块剂量不会加载从PHP文件

下面是HTML和AJAX查询:

<div id="workcontent" class="pcontent" style="display:none;"> 
     <div class="slider-wrapper theme-default"> 
      <div id="slider" class="nivoSlider"> 

      </div> 
     </div> 
     <script> 
      $(document).ready(function() { 
       var wl = $('#worklist div'); 
       wl.on('click', function(){ 
        var name = $(this).attr('id'); 
        console.log(name); 
        $.ajax({ 
         url: 'read.php', 
         type: 'POST', 
         data: { data : name } 
        }).done(function (response) { 
         $('#slider').prepend(response); 
         alert(response); 
        }); 

       }); 
      }); 
     </script> 
     <div id="back"></div> 
    <div id="backcontainer"> 
     <div id="back"> 
      <a href="index.php">Back</a> 
     </div> 
    </div><!--End backcontainer--> 
</div><!--End content--> 

这里是jQuery的其他:

<script> 
    $(document).ready(function() { 
     $('#slider').nivoSlider(function(){alert('OK');}); 
    }); 
</script> 

此警报不显示! ):

最后,这里是PHP代码:

<?php 
if (isset($_POST["data"])){ 
    if ($_POST["data"] == "") { 
      echo "data ures"; 
    } else { 
     $data = $_POST["data"]; 
     $fname = "content/".$data."/*.*"; 
     $files = glob($fname); 
     for ($i=0; $i<count($files); $i++) 
     { 
      $num = $files[$i]; 
      echo '<img src="'.$num.'" data-thumb="'.$num.'">'; 
     } 
    } 
} else { 
    echo "nem jott data"; 
} 
?> 

对不起我的英文不好

回答

0

NivoSlider并不需要一个函数作为参数。

另外.nivoSlider()可能是之前 AJAX调用返回它的响应。 一个更好的解决办法是:

$(document).ready(function() { 
    $.ajax({ 
     url: 'read.php', 
     type: 'POST', 
     data: { data : name } 
    }).done(function (response) { 
     $('#slider').prepend(response).nivoSlider({});  
    }); 
}); 

现在你可以相当肯定#slider包含响应主体的图像,以便NivoSlider可以对其采取行动。

+0

哦,thx!我在AJAX调用之前尝试过,但我不这样做。 但是你的方法成功了! – lgabster 2013-04-08 21:25:45