1
<form method="post" action="#" name="sign-up" id="sign-up">
<label for="name">Name:</label>
<input type="text" id="name" name="name">
<label for="last-name">Last Name:</label>
<input type="text" id="last-name" name="last-name">
<label for="age">Age:</label>
<input type="text" id="age" name="age">
<label for="email">Email:</label>
<input type="email" id="email" name="email">
<input type="submit" value="Verify" id="submit-form">
  </form>
<div id="result"></div>
<script>

(function() {
$('form').on('submit',function(e) {
e.preventDefault();
$('#verify').slideUp();
    $.ajax({
    type: "POST",
    url:"https://externalhost/file.php",//not the actual host
    data: $('form').serialize(),
    success: function(result) {
    $('#result').html(result); }
    });
});

})();

ご覧のとおり、訪問者用の購読フォームを作成しようとしていますが、うまくいきません。

まず、.show() などで結果を表示しているため、すべてのフィールドが完了したかどうかを確認できません。

次に、$.ajax フォーム自体が機能しています。MySql に登録されているすべての情報とすべてを受け取っているので、$.ajax を介して呼び出された外部ファイルも問題ありませんが、結果は表示されません。

また、これは Facebook アプリになる予定ですが、Facebook でもうまくいきません :/

ここで私が間違っていることを誰か助けてもらえますか?

編集:

マークアップの # は間違いでしたが、修正しましたが、やはり機能しません :/

4

2 に答える 2

1

マークアップにエラーがあります:

<div id="#result"></div>

する必要があります

<div id="result"></div>

あなたresultがオブジェクトの場合、使用html()は機能しません。ただし、each()各オブジェクトプロパティをループして、その値を#resultdivに追加する関数を使用することはできます。

$.each(result, function(key, element) {
  $("#result").append(key + ": " + element + "<br />");
});

DEMOを参照してください。

于 2013-03-13T17:51:37.110 に答える
0

jQuery を自己呼び出し関数に渡す必要があります。あなたはこのようにすることができます...

(function($) {
...

})(jQuery);

そして、すべてが始まる前に、ページのどこかにスクリプトファイルをロードしていることを確認してください

于 2013-03-13T18:19:31.700 に答える