通过json / ajax / jquery提交表单

时间:2013-10-21 21:19:15

标签: javascript php jquery ajax json

这是我的代码

    function generate_clicked()
    {
        var txt_text_color = $('#txt_text_color').val();
        var url='process.php?';
        url+='txt_text_color='+encodeURIComponent(txt_text_color);


        $.ajax({
            url: url,
            beforeSend: function ( xhr ) {
            xhr.overrideMimeType("application/json; charset=x-user-defined");
          }
        }).done(function ( data ) {
            try{
                $('#preview').val(data.css);
                $('#my_iframe').srcdoc = data1;
                }
            catch(err)
            {
                console.log(err);
            }
            document.getElementById("my_iframe").src = data.live_preview_html_page;
        });

    }

这适用于我的目的,但如果我添加了另一个表单元素,我会非常繁琐地添加var example = $('....')。val(); 和 URL + = '例如' + endcodeU .....

我将拥有超过100个元素,然后我将使用

重新审核它们
$txt_text_color = $_REQUEST['txt_text_color'];

我的问题是,如何将其序列化(我认为这就是我需要做的事情),以便每次创建新的表单对象时都不必编写这两个varibles名称。

我需要在process.php中保存/发布这些变量来使用它们。

对不起,如果这没有意义,我还在学习。

1 个答案:

答案 0 :(得分:1)

尝试form.serialize() http://api.jquery.com/serialize/

您的代码看起来像这样:

function generate_clicked()
{
    var formData = $('#form').serialize();
    var url='process.php?';
    url+=formData;


    $.ajax({
        url: url,
        beforeSend: function ( xhr ) {
        xhr.overrideMimeType("application/json; charset=x-user-defined");
      }
    }).done(function ( data ) {
        try{
            $('#preview').val(data.css);
            $('#my_iframe').srcdoc = data1;
            }
        catch(err)
        {
            console.log(err);
        }
        document.getElementById("my_iframe").src = data.live_preview_html_page;
    });

}