2

画像をアップロードしてトリミングできる PHP、Jquery、および Ajax を使用してウィジェットを作成しています。画像を選択してフォームを送信するとき。次のコードが実行され、画像がアップロードされます。

<?php

    $valid_formats = array("jpg", "png", "gif", "bmp");
    if(isset($_POST['submit']))
        {
            $name = $_FILES['photoimg']['name'];
            $size = $_FILES['photoimg']['size'];
            if(strlen($name))
                {
                    list($txt, $ext) = explode(".", $name);
                    if(in_array($ext,$valid_formats) && $size<(1024*1024))
                        {
                            $actual_image_name = time().substr($txt, 5).".".$ext;
                            $tmp = $_FILES['photoimg']['tmp_name'];
                            if(move_uploaded_file($tmp, $path.$actual_image_name))
                                {
                                    $image="<img src='uploads/".$actual_image_name."' id=\"photo\" style='max-width:500px' >";

                                }
                            else
                                echo "failed";
                        }
                    else
                        echo "Invalid file formats..!";                 
                }
            else
                echo "Please select image..!";
        }
?>

フォームの送信中にページが更新されます。ページを更新せずにこれを行いたい。

を使用せずに、上記の PHP コードを PHP 関数に入れるとします。
if(isset($_POST['submit']))

次に、AJAX を使用して PHP 関数を呼び出す方法はありますか。

前もって感謝します....

4

3 に答える 3

1

実は、画像を選択するとすぐにAJAX経由でPHPフォームを送信し、画像をアップロードできるものを探していました。私はこのコードを見つけました、

$('#photoimg').live('change', function(){ 
     $("#preview").html('');
     $("#imageform").ajaxForm({
        target: '#preview'
    }).submit();    
});

ここで、photoimgは入力タイプのファイルの ID 、 imageformはフォームのID、 previewはプレビューを表示する div の ID です。ファイルが選択されると、changeイベントが発生し、フォームが送信されます。これを参照できます。

于 2013-04-19T11:09:38.627 に答える
0

ファイルをアップロードしたいのに、ファイルを選択したときにページを更新したくないので、jquery を使用でき$.ajax or $.postます$.ajax。そのため、ajax 呼び出しに適切なパラメーターを指定する必要があります。url パラメーターでは、php ファイルの名前、つまり上記の php スクリプトを指定する必要があります。成功した場合は条件を削除する if(isset($_POST['submit'])) 必要があります.ajax呼び出しで結果が得られます.phpjsonスクリプトからjqueryに結果を返し、jqueryで解析するために使用できます. また、ティムが言ったように、ボタンをクリックしてポストを使用したくないため、jquery で change() を使用する必要があります。この リンクを参照してください。

于 2013-04-19T07:41:54.913 に答える