6

私がやっていることは、JSON を使用してフォームを作成することです。このフォームを編集して、新しい JSON オブジェクトを生成できます。私が抱えている問題は、フォームIDの取得にあるようです。JSON オブジェクトを返すために使用しているコードは次のとおりです。

form = document.forms[0];
$.fn.serializeObject = function()
{
    alert("start serializeObject");
    var o = {};
    var a = this.seralizeArray();
    $.each(a, function(){
        if (o[this.name] !== undefined) {
            if (!o[this.name].push) {
                o[this.name] = [o[this.name]];
            }
            o[this.name].push(this.value || '');
        } else {
            o[this.name] = this.value || '';
        }
    });
    return o;
    alert(o);
};

$(function() {
    alert("here");
    form.submit(function(){
        result.append(JSON.stringify(form.serializeObject()));
        return false;
    });
});

これはページを更新するだけですが、理由はわかりません。このプログラムはサーバー上になく、サーバー上では使用できません。つまり、apache2 セットアップなしで、ローカル マシンでローカルに実行されるだけです。

ありがとう。

4

2 に答える 2

10

コードは非常に簡単に記述できます。これは私がそれを行う方法です:

アヤックス:

$('#formID').on('submit',function () {
    $.ajax({
        url: 'submit.php',
        cache: false,
        type: 'POST',
        data : $('#formID').serialize(),
        success: function(json) {
            alert('all done');
        }
    });
});

Ajax で送信しない場合、なぜこれを行うのでしょうか? 単純にフォームを送信する場合は、次のように PHP を使用して送信できます。

<?php
$json_object = json_decode($_POST);
?>
于 2012-06-19T11:32:04.903 に答える
2
$('#formID').on('submit',function (e) {
    e.preventDefault();
    $.ajax({
        url: 'submit.php',
        cache: false,
        type: 'POST',
        data : $('#formID').serialize(),
        success: function(json) {
        alert('all done');
    }
    });
});

リダイレクトまたはリフレッシュを行いたくない場合は、e.preventDefault(); を使用してください。

于 2013-11-28T13:07:26.617 に答える