0

私は画像をサーバーにアップロードし、画像アドレス(および/または追加のhtmlコード)を含むphp文字列を返す単純なフォームを持っています。これは、JqueryFormプラグインを使用して行われます。私が欲しいもの:PHPファイルによって返される値(文字列)はjqueryに返される必要があるので、その画像のURLを使用していくつかの要素のbckgroundとして設定できます:

これがphpファイルです(画像を更新するため):

$ path = "uploads /";

$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'

それは#mainの中にいくつかのhtmlを置きます、私はこれを作る必要があります:

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

ここで、画像はcssによってti#mainに割り当てられます。(imageUrlは、上記のphpファイルの文字列です:$ actual_image_name)

これは可能ですか、または少なくともいくつかの同様の解決策がありますか?

4

3 に答える 3

2

jquery形式で成功アイテムを実装する必要があります。コードは次のようにする必要があります
(php uで画像のフルパスを返すようにしてください。jsonに関与する必要はなく、エコーまたは印刷が正しく機能します)。

$('#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 に答える
2

ドキュメントの読み込み時に実行される関数呼び出しを記述し、その文字列をHTMLのjavascriptの関数呼び出しに渡します。

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

データをJSON文字列としてPHPファイルに送信し、コールバック関数で結果(JSON文字列も)を受け取るAJAX呼び出しを行います。jQueryで戻りデータを使用します。

于 2012-05-28T15:22:41.583 に答える