0

フォームデータを投稿して結果を返そうとしていますが、これを機能させるのに問題があります:

ジャバスクリプト:

<script type="text/javascript">
    $(document).ready(function () {

        $("#sendthis").click(function () {

            $.ajax({
                type: "POST",
                data: $('#theform').serialize(),
                cache: false,
                url: "form.php",
                success: function (data) {

                    alert(data);

                }
            });

            return false;

        });

    });
</script>

HTML:

<form id="theform">
    <input type="text" class="sized" name="name" id="name"><br />
    <input type="text" class="sized" name="email" id="email">
</form>

<a href="#" id="sendthis">Submit</a>

投稿するページ (form.php):

<?php
if (isset($_POST['name'])){
    $result = $_POST['name'];
}

echo $result;
?>

さて、フォームが送信されるとform.phpに投稿され、「名前」の入力値がアラートボックスに返されることを理解しています。ただし、フォームデータの投稿 (またはおそらく返される) を正しく取得できないようです。

それは問題$('#theform').serialize()ですか?多分何か他のもの?

どんな助けでも大歓迎です。

4

2 に答える 2

1

投稿中に問題が発生した場合にキャッチするために、エラー コールバックを ajax リクエストに追加します。投稿されているデータ (および場所) を表示できる、firebug のようなデバッガーはありますか?

于 2012-05-10T02:47:16.170 に答える
1

これを試して、動作するかどうかを確認してください

<form id="theform" action="/form.php">
    <input type="text" class="sized" name="name" id="name"/><br />
    <input type="text" class="sized" name="email" id="email" /><br />
    <input type="submit" name="submit" value="Submit" />
</form>

jquery

$("#theform").on('submit', function () {
    $.post($(this).attr('action'), $(this).serialize(), function(data) {
        alert(data);
    });
    return false;   
});
于 2012-05-10T02:58:58.433 に答える