簡體   English   中英

如何使用AJAX / jQuery以JSON格式而不是帶有鍵值對的JSON來發布表單數據?

[英]How to POST form data in JSON format instead of JSON with key value pair using AJAX/jQuery?

我有一個表單用於將JSON鍵值對中的表單數據POST到URL。 與以下格式相同:

[{'name':'URL','value':' http//127.0.0.18000 / test / addcustomer '},{'name':'FirstName','value':'abc'},{ 'name':'LastName','value':'Xyz'},{'name':'DOB','value':'123457'},{'name':'EmailAddress','value':'示例@ gmail.com'},{'name':'Address1','value':'123 Street'},{'name':'Address2','value':'11123'},{'name':' City','value':'Xyz'},{'name':'State','value':'Pqr'},{'name':'PostalCode','value':'12345'}]

而不是這個我想要的東西如下:

[{'URL':' http//127.0.0.1 :8000 / test / addcustomer','FirstName':'Abc','LastName':'Xyz','DOB':'123457','EmailAddress': 'example@gmail.com','地址1':'123街','地址2':'11123','城市':'Xyz','州':'Pqr','PostalCode':'12345'}]

請參考以下代碼:

$(document).ready(function(){
    $("#submit").on('click', function(){
     var a=document.forms["myForm"]["EmailAddress"].value;
     var b=document.forms["myForm"]["URL"].value;
        if (a==null || a=="" || b==null || b=="")
        {
            $("#EmailAddress").css("border-color", "#963634");
            $("#URL").css("border-color", "#963634");
            alert("Please fill Email Address and URL!!!");
            return false;
        }
        else
        $.ajax({
            url: b, 
            type : "POST",
            data : JSON.stringify($("#myForm").serializeArray()), 
            success : function(result) {
                alert(result);
                $("#myForm")[0].reset();
            },
            error: function() {
                alert('Please enter valid URL');
            }
        })
    });
});

我會嘗試類似的東西:

        else
        {
            let formData = $("#myForm").serializeArray();
            let data = formData.reduce((acc, x) => acc[x.name] = x.value, {});
            $.ajax({
                url: b, 
                type : "POST",
                data : JSON.stringify(data), 
                success : function(result) {
                    alert(result);
                    $("#myForm")[0].reset();
                },
                error: function() {
                    alert('Please enter valid URL');
                }
            })
        }

減少線大致相當於:

// formData is in the form [ {'name': 'A', 'value': B}, {'name': 'X', 'value': Y},... ]
let data = {};
for (let item of formData)
    data[item.name] = item.value;
// data is now in the form { 'A': B, 'X': Y, ... }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM