转换jquery函数从表单提交到php数组结果


Converting jquery function from form submit to php array result

我正在尝试使用ImageResolver插件并使其适应php数组。

将代码剥离到此返回没有表单的图像:

$(function(){
    var url = $('#url').val();
    ImageResolver.resolve(url, function(image){
        if (image) {
            $('#result').html('<img src="' + image + '" alt="">');
        } else {
            $('#result').html('<h2>No image found</h2>');
        }
});
});

我想适应它的工作在php foreach循环。结果将被替换为下一个class='result'div。IE:在页面从查询中加载url后,该函数将解析url并返回图像链接,如果找到一个。我猜我需要用(each)this(),但我想不出来。

有人能给我指个正确的方向吗?
        <script src="ImageResolver/URI.min.js"></script>
        <script src="ImageResolver/ImageResolver.js"></script>

    <?
        $javascriptarray = 'var urls = [';
        $counter=0;
        foreach (array('http://www.apple.com/','http://github.com/','http://www.test.com/') as $url) 
        {
            if ($counter++ > 0) $javascriptarray .= ',';
            $javascriptarray .= '"'.$url.'"';
        }
        $javascriptarray .= '];';   
    ?>
<script>    
<?=$javascriptarray?>
//The ImageResolver will try all the resolvers one after the other
//in the order of their registration
//Resolvers that guess the image URL
ImageResolver.register(new FileExtensionResolver());
ImageResolver.register(new ImgurPageResolver());
ImageResolver.register(new NineGagResolver());
ImageResolver.register(new InstagramResolver());
//Resolvers that need extra ajax requests
ImageResolver.register(new ImgurAlbumResolver());
ImageResolver.register(new OpengraphResolver());
ImageResolver.register(new WebpageResolver());
//Some jQuery code to make the demo work
//Use a crossdomain proxy (required by some plugins)
$.ajaxPrefilter('text', function(options) {
    options.url = "http://furious-stream-4406.herokuapp.com?src=" + encodeURIComponent(options.url);
});
$(function(){

var length = urls.length,
url = null;
    for (var i = 0; i < length; i++) {
            url = urls[i];
            ImageResolver.resolve(url, function(image){
            if (image) {
                $('#result').append('<img src="' + image + '" alt=""><br>');
            } else {
                $('#result').append('<h2>No image</h2>');
                //$('#result').append('<h2>No image found for ' + url + '</h2>');
            }
        }); 
    }
}); 
</script>   

注意ImageResolver.resolve()异步工作,你可能会得到意想不到的结果。在之前的调用完成之前再次调用ImageResolver.resolve()将把$('#result').append('<h2>No image found for ' + url + '</h2>');中的url更改为您上次调用的url。为了防止这种情况,你需要在for循环中初始化一个新的Resolver。参见:Javascript原型和实例创建