2016-07-07 7 views
0

私は同様のケースについて複数のスレッドを読んできましたが、今でもそれを正しく実行することはできません。ajax form submit - > phpからresponeを受け取ります

私がしたいこと 基本的には、ユーザーがログイン(単にデータベースへのクエリ)を変更できるフォームがあります。 PHPスクリプトは以下のようになります。

if(isset($_POST['login'])) { 
     $doEdit = $user->editData("login", $_POST['login']); 
     if($doEdit) { 
      $result = displayInfobox('success', 'Good!'); 
     } else { 
      $result = displayInfobox('warning', 'Bad!'); 
     } 
    } else { 
     $error = 'Bad!'; 
     echo $error; 
    } 

displayInfoboxは、クラス、すなわち成功とコンテンツを持つだけdiv要素である - グッド!

今、このフォームをAJAXで送信し、ページをリロードせずに$ resultを表示したいと思います。

HTML:

<form id="changeLogin" method="post" class="form-inline" action="usercp.php?action=editLogin"> 
     <label for="login">Login:</label><br /> 
     <div class="form-group "> 
      <input type="text" class="form-control" name="login" id="login" required> 
      <input type="submit" value="Zmień" class="btn btn-primary"> 
     </div> 
    </form> 

そしてfinnally - 私のjqueryの/アヤックス:

$("#changeLogin").submit(function(e) { 

    var postData = $(this).serializeArray(); 
    var formURL = $(this).attr("action"); 
    $.ajax({ 
    url: formURL, 
    type: "POST", 
    data: postData, 
    success: function(result) { 
     alert(result); 
    }, 
    error: function(response) {} 
    }); 
    e.preventDefault(); 
}); 

$("#changeLogin").submit(); 

私は空白の "成功" のままにした場合、それは動作します - >フォームはAJAXによって提出され、ログインが変更されましたが、結果メッセージが表示されません。さもなければページ全体が再ロードされます。また、私がF5を押すと、フォームが再び送信されます(Ajaxでも)。

+0

は2番目の '$("#changeLogin ")です。コード内にsubmit(); – Jeff

+0

また、html形式で 'action'を定義してそこから取得する必要はありません。それを空のままにして、jsでURLを設定します。 – Jeff

答えて

1

私は私が十分に評判けど...

を持っていないので、あなたが$("#changeLogin").submit();

との最後の行を削除する必要がありますそして、あなたができるよう、あなたのPHPスクリプトファイルで使用すると、結果をエコーする必要があり、コメントを追加カントこの結果をajaxリクエストで取得します。その後成功の方法で結果を読んで(例えば)成功またはエラーボックスを表示するためにどこかに追加する必要があります

+0

ありがとう!それは結果をフィルターに掛けてしまったのですか? filter()の使い方を正しく理解できません - >結果はあるクラスのdivにあります。私はそれをフィルタリングすると、そのクラスのdiv全体ではなく、divの内容を取得します。 – ficus

0

私はボタンを送信する代わりに通常のボタンを使うことができると思う、onclickはajax要求、フォームは、幸運を提出するべきではありません。

関連する問題