2012-06-19 10 views
5

JSONを使用してフォームを作成し、このフォームを編集して新しいJSONオブジェクトを作成することができます。私が抱えている問題は、フォームIDを取得しているようだ。私はJSONオブジェクトを返すために使用しています コードは次のとおりです。フォームを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; 
    }); 
}); 

は、これは単なるリフレッシュpageIはなぜわからないです。 このプログラムはサーバー上にはなく、サーバー上で使用することはできません。 これは私が意味するのは、ローカルマシン上では、apache2の設定なしですべてがローカルで実行されることだけです。

ありがとうございました。

+1

コードにはかなりのタイプミスがあります。 'from'、' seralize' – ThiefMaster

+0

このプログラムはサーバー上にはなく、サーバー上では使用できません。手段?要件を明確に記述してください。jsonとしてデータを送信したい場合は、jquery ajax {post: 'json'}の例を確認してください。 – Rajesh

+0

編集された質問 – Sagarmichael

答えて

9

あなたのコードはかなり簡単に書くことができます。これは私がそれを行う方法です。

アヤックス:

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

あなたはアヤックスとそれを送信していない場合は、なぜあなたはこれを行うだろうか?あなたは、単にフォームを提出している場合、あなたはこのようにPHPを使用してそれを行うことができます:あなたが使用e.preventDefaultを(リダイレクトまたはリフレッシュないかどう

<?php 
$json_object = json_decode($_POST); 
?> 
+0

謝罪私はajaxで送付しています。 – Sagarmichael

+0

私の最初のコードを試してみてください。私はそれがあなたのために物事をもっと楽にすると思う。 – OptimusCrime

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'); 
    } 
    }); 
}); 

)。

関連する問題