0

我有简单的表单,可以将图像上传到服务器并返回包含图像地址(和/或附加 html 代码)的 php 字符串。它是通过 JqueryForm 插件完成的。我想要的是:PHP文件返回的值(字符串)需要返回给jquery,所以我可以使用该图像url将其设置为某个元素的背景:

这是php文件(用于上传图像):

$path = "上传/";

$valid_formats = array("jpg", "png", "bmp");
if(isset($_POST) and $_SERVER['REQUEST_METHOD'] == "POST")
    {
        $name = $_FILES['photoimg']['name'];
        $size = $_FILES['photoimg']['size'];

        if(strlen($name))
            {
                list($txt, $ext) = explode(".", $name);
                if(in_array($ext,$valid_formats))
                {
                if($size<(1024*1024))
                    {
                        $actual_image_name = time().substr(str_replace(" ", "_", $txt), 5).".".$ext;
                        $tmp = $_FILES['photoimg']['tmp_name'];
                        if(move_uploaded_file($tmp, $path.$actual_image_name))
                            {
                                echo $actual_image_name; //This is returned, i want thist to be somehow "converted" to jquery
                            }
                        else
                            echo "Sending failed!";
                    }
                    else
                    echo "May filesize 1 Mb!";                  
                    }
                    else
                    echo "Unknown ffile format!";   
            }

        else
            echo "Select image for sending";

        exit;
    }

而且,这里是用于发送图像的 jquery 代码:

$('#photoimg').live('change', function() {
       $("#main").html('');
$("#main").html('<img src="/uploader/loader.gif" class="vk_upload_bar" alt="Uploading...."/>');
$("#imageform").ajaxForm({
        target: '#main'
}).submit();
});

不知何故,而不是:

target: '#main'

将一些html放在#main中,我需要这样做:

   $('#main').css('background-image', 'url(' + imageUrl + ')');

其中图像将由 css 分配 ti #main。(imageUrl 是上面 php 文件中的字符串:$actual_image_name)

这可能吗,或者至少有一些类似的解决方案?

4

3 回答 3

2

编写一个在文档加载时执行的函数调用,并将字符串传递给 HTML javascript 中的函数调用:

$(document).onload( function() {
     functionCall('<?php echo $actual_image_name ?>');
}
于 2012-05-28T15:15:55.863 回答
2

您需要以 jquery 形式实现成功项目,您的代码必须是这样
的(确保在 php 中您返回图像的完整路径,不需要使用 json,使用 echo 或 print 可以正常工作)

$('#photoimg').live('change', function() {
   $("#main").html('');
   $("#main").html('<img src="/uploader/loader.gif" class="vk_upload_bar"       alt="Uploading...."/>');
   $("#imageform").ajaxForm({
    url : 'yourphpfile' ,
   success :function (data){
          $('#main').css('background-image', 'url(' +  data + ')');

    }

   }).submit();
    });

有关 jquery 表单的更多信息,请使用此链接

问候

于 2012-05-28T15:37:24.790 回答
1

进行 AJAX 调用,将数据作为 JSON 字符串发送到 PHP 文件,并在回调函数中接收结果(也是 JSON 字符串)。使用 jQuery 中的返回数据。

于 2012-05-28T15:22:41.583 回答