2017-04-11 25 views
0

問題

マイページには、私のPHPコードをデフォルトさせる代わりに、AJAXを経由して非同期に処理されているようです。今のところ、私のページは空白の画面として再ロードされ、入力配列は正常にPHPに渡されました。これは快適ですが、私はちょうどajaxに何か間違っているようです。私はthis linkthis linkを表示した後 Ajax呼び出し

を試してみた何

は、私はまだカントは、これが考え出し得るように見えます。ユーザーが検証された後のdivを返すために

$(document).ready(function(){ 

    $("#commentForm").submit(function(event){ 

     /* 
     var formData = { 
      'name'    : $('input[name=name]').val(), 
      'email'    : $('input[name=email]').val(), 
     }; 
     */ 
     alert("SUCCESS?"); 
    }); 


}); 

PHPコード:ここで

<form class="cmxform" id="commentForm" method="" action=""> 
    <fieldset> 
    <legend>Please provide your name, email address (won't be published) and a comment</legend> 

    <p> 
     <label for="spinner">How much do you love science? (optional)</label> 
     <input id="spinner" name="spinner">  
    </p> 

    <p> 
     <label for="cname">Name (required, at least 2 characters)</label> 
     <input id="cname" name="name" minlength="2" type="text" required> 
    </p> 
    <p> 
     <label for="cemail">E-Mail (required)</label> 
     <input id="cemail" type="email" name="email" required> 
    </p> 
    <p> 
     <label for="curl">URL (optional)</label> 
     <input id="curl" type="url" name="url"> 
    </p> 
     <p> 
     <label for="aoi">Area of Interest (optional)</label> 
     <input id="aoi" type="text" name="aoi"> 
    </p> 
     <p> 
     <label for="currprobs">Current Problems (optional)</label> 
     <input id="currprobs" type="text" name="currprobs"> 
    </p> 
    <p> 
     <label for="ccomment">Your comment (required)</label> 
     <textarea id="ccomment" name="comment" required></textarea> 
    </p> 
    <p> 
     <input id="launch" type="submit" value="Submit"> 
    </p> 
    </fieldset> 
</form> 
    <div id="results"></div> 

ではJavaScriptです:

現在の常任ここで

はHTMLです

<?php 

$username = isset($_POST['name'])? trim($_POST['name']):''; 
$email= isset($_POST['email'])? trim($_POST['email']):''; 

echo '<div id=dynamicDiv> 
    <p>Hello, '.$username.'!</p> 
    <p>We look forward to contacting you at, '.$email.'</p> 
</div>'; 
?> 

Feエドバック

知的な会話でさえ、どんな考えも高く評価されています。コードスニペットのアイデアですが、私はコミュニティが、私はJavaScriptとPHPはPHPのための知力の入力やベストプラクティスを反映するためにmotified編集1

ことができます何かを感謝し、AJAX呼び出し、しかし、問題はまだ残っています。

編集2

私の目標は、今、Ajaxは次のステップになりますちょうど私のjavascriptの内部の作業を警戒()文を取得することです。

+0

単に 'data:$(this).serialize()'を実行して、すべてのフォームデータを渡すことができます。また、 'encode'オプションもありません。 – Mikey

+0

エンコードは 'json'オブジェクトを渡すような機能ですか?それは私がそれに加えたちょうど追加情報でしたか? – bmc

+0

あなたが記述する問題は、通常、 'event.preventDefault();'を含まないことによって引き起こされますが、あなたはそれを持っていて[問題は再現できません](http://jsbin.com/peqirab/1/edit?html 、js、output)を使用してコードを作成します。私の最高の推測は、あなたが[mcve]を作成したときに、JSを破って、event.preventDefault();行に到達しないようにしたものを除外したということです。 – Quentin

答えて

2

私は「=あなたは

$("#results").html(html_i); 

に変更を試みるとPHPであなたはあなたが入力タイプを変更する必要があり

$username = isset($_POST['name'])? trim($_POST['name']):''; 
$email= isset($_POST['email'])? trim($_POST['email']):''; 
+0

まだ問題があるようです。私のページは更新されたブラウザの次のターゲット検索バーでリフレッシュされます: 'http://cs.iupui.edu/~bmconrad/n341/html/resource_center.html?spinner=4&name=Blake&email=bmc.cs%40outlook.com&url=私の変数を格納していると思われるhttp%3A%2F%2Ffacebook.com&aoi = Data + Science&currprobs = 34r2r2&comment =%6034t3t'ですが、これは間違いなくリフレッシュされました。現在の状態をよりよく反映するために、私のコードを更新しています。 – bmc

+0

@bmcあなたは 'prevenDefault()'を遅く呼び、最初に移動してもう一度やり直してください – Akashii

+0

@ThanhTùng - 「遅すぎる」ではありません。関数が返る前にいつでも呼び出すことができます。 – Quentin

-2

名前とメールアドレスを確認する必要があり、問題はここに

$("#results").html = html_i; 

だと思いますsubmit "ボタンを押してinput type =" button "を呼び出し、onclick関数でAjaxを呼び出します。フォームとAjaxの呼び出しは400状態に達していません。

+0

を除いて機能を削除します。 Enterキーを押すと、送信をトリガーすることはできません。 –