2010-12-15 11 views
0

私はフォームを持っています。getリクエストを使用して動的に作成された入力値をPHPに送信します。

$('#add_multi_item').click(function(){ 

       $('<input />').attr({'type':'text', 'id':'response_input_' + next_add_id}).appendTo('#multi_responses'); 
       next_add_id++; 
      }); 

と私のフォームは次のように提出されている:私は、ユーザーがボタンを押すことにより、余分な入力を追加することができますよ

$("#add_form").bind('submit', function(event){ 
     event.preventDefault(); 
     $.get('file.php', {poll_type_select: $("#poll_type_select option:selected").val(), question_input: escape($("#question_input").val()), type: "add_poll", user_id:user_id}, function(data) { 
        $('#added').show().html(data); 
        $('#added').hide(7000); 
        $('#question_input').val(''); 
        loadList(); 
       }); 
    }); 

私が手にそれらの動的に作成された入力値を追加するにはどうすればよいです要求?私はポストの名前配列を使用する人もいると思いますが、私は何か似たようなことができますか?また、私はデータベースに追加するときにエラーを防ぐためにそれらを送信する前にすべての入力をエスケープ()しなければならないと思う。私が考えていた

1オプションは、単一の値を送信することだった、区切られた文字列のようなものを使用して作成:

$("#multi_responses input").each(string+=escape($(this).val())+"delimiter"); 

をそれが最善の方法だ場合、私は知りません。それを行うなら、典型的なデリミタは何ですか?

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

+0

誰でも助けることができますか? – vee

答えて

0

は、あなただけのように、これらの入力にname属性を与えることがあります。

$('<input />').attr({'type':'text', 'id':'response_input_' + next_add_id, 'name': 'response_input[' + next_add_id + ']'}).appendTo('#multi_responses'); 
+0

GETの代わりにPOSTを使用します。そして、デフォルトのフォーム提出がそのことを行うことを許可します。 –

+0

私はPOSTメソッドに同意しますが、実際には、veeがajaxリクエストを行いたい場合は、フォームが送信されないようにしてください。応答のために – ncuesta

+0

ありがとう。だから私はその部分を今理解していますが、私はどのようにして私の要求を取得してその名前の配列を送信するのですか?これはうまくいかない: 'multi_responses []':$( "#add_form input [name = response_input []]")。 – vee

関連する問題