gpt4 book ai didi

javascript - 添加对象数组以形成对象

转载 作者:行者123 更新时间:2023-11-30 14:48:58 27 4
gpt4 key购买 nike


我有一个这样的 html 表单:

<form action="/create" method="POST">

<input type="text" placeholder="title" name="title">
<input type="text" placeholder="year" name="toYear">
<input type="text" placeholder="genre" name="genre">
<input type="text" placeholder="director" name="director">
<input type="url" placeholder="poster" name="poster">
<textarea name="plot" placeholder="plot..." cols="30" rows="10"></textarea>

<div id="actors">
<h5>Actors</h5>
<button type="button" id="addActor">Add Actor</button>
</div>

<div id="ratings">
<h5>Ratings</h5>
<button type="button" id="addRating">Add Rating</button>
</div>
<button type="submit">Add to Collection
</button>
</form>

下面是我的脚本:

document.getElementById('addRating').addEventListener('click', function () {

var ratingsElem = document.getElementById('ratings');

var sourceElem = document.createElement("input");
sourceElem.setAttribute('type', 'text');
sourceElem.setAttribute('placeholder', 'Source');
sourceElem.setAttribute('name', 'ratingsSource');

var valueElem = document.createElement("input");
valueElem.setAttribute('type', 'text');
valueElem.setAttribute('placeholder', 'value');
valueElem.setAttribute('name', 'ratingsValue');


ratingsElem.appendChild(sourceElem);
ratingsElem.appendChild(valueElem);

})

document.getElementById('addActor').addEventListener('click', function () {

var ActorsElem = document.getElementById('actors');

var actorElem = document.createElement("input");
actorElem.setAttribute('type', 'text');
actorElem.setAttribute('placeholder', 'Name');
actorElem.setAttribute('name', 'actors');

ActorsElem.appendChild(actorElem);
});

提交时一切顺利,但我想将 Ratings 值变成这样的评级对象数组:

"Ratings": [
{
"Source": "Internet Movie Database",
"Value": "8.8/10"
},
{
"Source": "Rotten Tomatoes",
"Value": "91%"
},
{
"Source": "Metacritic",
"Value": "92/100"
}
]

并将其附加到发送到服务器的表单数据中。我怎样才能做到这一点?...................................................

最佳答案

var formData = JSON.stringify($("#myForm").serializeArray());

您可以稍后在 ajax 中使用它。或者,如果您不使用 ajax;把它放在隐藏的文本区域并传递给服务器。如果此数据通过普通格式数据作为 json 字符串传递,则您必须使用 json_decode 对其进行解码。然后,您将获得数组中的所有数据。

$.ajax({
type: "POST",
url: "serverUrl",
data: formData,
success: function(){},
dataType: "json",
contentType : "application/json"
});

引用:How to send a JSON object using html form data

关于javascript - 添加对象数组以形成对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48459646/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com