0

私は初心者のプログラマーです。単純なコーディングの問題で 2 日間立ち往生しています。フォームを別のページに送信するために jquery フォーム プラグインを使用し、そのページからフィードバックを取得しようとしています。問題は、プラグインが機能していないことです。フォームはフィードバックなしで正常に送信されます。 . コードは次のとおりです。

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7/jquery.js"></script> 
<script src="http://malsup.github.com/jquery.form.js"></script>

<div id='preview'></div>
<form  action='ajaxcall.php' id='upload_pic' enctype='multipart/form-data'  method='post'>
<input type='file' id='pic' name='picture'>
<input type='submit' id='sub'>
</form>

var options=
{
  target:'#preview',
  url:'ajaxcall.php'
};

$(document).ready(function(){
    $("#sub").click(function(){
        $('#preview').html("<img src='images/loader.gif' alt='Loading.....'/>");
        $('#upload_pic').ajaxForm(options).submit();
    });
});

これが私のajaxcall.phpページコードです

if(!empty($_FILES['picture']['size']))
{
 echo "<img src='images/197.jpg'>";
}

エコーされた画像がフィードバックされると予想されていましたが、ページは単に ajaxcall.php ページにリダイレクトされます。ajaxForm() 関数が機能していないことを理解しています。SOで同じ質問を2回していますが、まだ満足のいく解決策はありません。しかし、なぜ?助けてください。よろしくお願いします。

4

1 に答える 1

0

このプラグインを使用する理由もわからないため、adeneoの回答を使用してください。

プラグインのウェブサイトの例では、

  1. ボタンではなくフォームにバインドする
  2. beforeSubmit オプションを使用する
  3. 呼び出しの最後から submit() を削除します。なぜそこにあるのかわかりません
  4. エラーがないかコンソールを監視する
var options=
{
  target:'#preview',
  url:'ajaxcall.php',
  beforeSubmit:  showLoading,
  error: function(e){
      alert("Error: " + e);
  }
};

function showLoading(){
    $('#preview').html("<img src='images/loader.gif' alt='Loading.....'/>");
}

$(document).ready(function(){
    $("#upload_pic").ajaxForm(options);
});
于 2013-03-24T12:59:54.887 に答える