2009-08-21 7 views
0

ユーザーにファイルを選択させてから、phpに内容をdbに入れさせたいと思っています。今、最後の部分(PHPでファイルを処理する)は簡単です。しかし、新しいページを読み込まなくても、ユーザーが選択したファイルを処理できる方法はありますか?html、javascript、およびphpでアップロードしてユーザーが選択したファイルを処理します

私は、次を使用する場合:

<FORM ACTION="upload.php" METHOD="post" ENCTYPE="multipart/form-data"> 
<INPUT TYPE="file" NAME="somefile"><BR /> 
<INPUT TYPE="submit" NAME="submit" VALUE="Upload"> 
</FORM> 

ページupload.phpがautomaticaly私がデータベースにアップロードされたファイルを挿入することができた後にロードします。

javascript、php、xajaxの組み合わせを使用してファイルを処理したいと考えています。私はこのようなものが可能であるとは思わない:

<FORM ACTION="javascript:xajax_proces_file()" METHOD="post" ENCTYPE="multipart/form-data"> 
<INPUT TYPE="file" NAME="somefile"><BR /> 
<INPUT TYPE="submit" NAME="submit" VALUE="Upload"> 
</FORM> 

関数xajax_process_file()が呼び出されたときにファイルがアップロードされていないため。またはそれは?私は、javascript、html、phpを使ってアップロードの原則を完全に理解していないと思います。

ご迷惑をおかけして申し訳ございません。

答えて

2

のフォームをクリアするためにJSで進みますステッププロセス。

まず、ユーザーがフォームに記入して送信します(ステップ1)。

指定したターゲットファイルは、フォームからの入力を受け取り、それを使用して何かを行います(デフォルト動作です)。ほとんどの場合、フォーム "アクション"をリンクと考えることができます。リンククリックのデフォルトアクションは、リンクの結果を表示することです。フォームアクションの場合も同様です。フォームアクションの結果を表示します。

JavaScriptを使用して、特定のイベントの要素のデフォルトアクションを無効にすることができます。 JavaScriptを介してブラウザのHTTPメカニズムにアクセスして、HTTPリクエスト(すべてのページリクエストは、URLバーやページリンク、Google検索結果など)を送受信することもできます。

これは、JavaScriptを使用してブラウザのHTTPメカニズムを使用してWebサーバーにリクエストを送信し、従来のクリックイベントを使用せずに応答を返すという簡単なことです。次に、これをJavaScriptの使用と組み合わせてデフォルトのアクションを「無効」にし、代わりにサーバーから情報を取得し、ページを更新することなくページに追加するために指定したアクションに従います。

特定の要素に対してdefualtアクションが発生しないようにするために、何度もコード内でfalseを返します。あなたのフォームにも同じことが起こります。 JavaScriptを使用して:あなたはAJAXには本当に初めて使用する場合

form.onSubmit = function() { 
    blah blah blah.....Use ajax to send the information to the form handler 
    return false; //Prevents the defualt action of the submit event 
} 

することは、私はあなたがこのtutorialをチェックアウトしてから、このone示唆しています。最後に、jQueryのようなJavascriptフレームワークを使用することをお勧めします。これはすばらしいことですが、すばらしいことですが、AJAXの機能も簡単で組み込みが簡単です。

もう1つはtutorialで、ページリフレッシュなしでフォームを送信する(jqueryを使用)。

+0

お返事ありがとうございます。私はAjaxの原則を理解しており、すでにxajaxとjqueryを使用しています。しかし、私はajaxと組み合わせてアップロードの値を理解していません。前回のチュートリアルではアップロードフォームを使用したいと思っていますが、どのように動作するのか、それがうまくいくかはわかりません。誰か提案? – jzp74

+0

私は今理解しています:本当のajaxのアップロードはできません。私は現在、http://valums.com/ajax-upload/からValums Ajaxのアップロードを使用しています – jzp74

0

代替フォームはインラインフレームにアクションを指示することです、iframe内にクエリを処理した後、それは2と考えるのに役立つかもしれ父

関連する問題