以下表单输入值需要使用Jquery在JSON中进行转换,我将通过AJAX将此JSON数据更新为mysql。我需要将特定的输入值(例如产品ID,产品名称,产品价格,折扣原因,折扣金额)转换为JSON格式。我已经尝试过自己:
$(document).ready(function(){
var jsons = $('form').serializeJSON();
console.log( jsons );
});
但是,我不能保持顺序,也不能跳过不需要的输入。
PHP代码:
<form>
First name: <input type="text" name="first_name" value="Addem">
Last name: <input type="text" name="last_name" value="Smith"><br><br>
Product id: <input type="number" name="items[][cat_id]" value="18"><br><br>
Product name: <input type="text" name="items[][product_name]" value="Men's t-shirt"><br><br>
Product sku: <input type="text" name="item_sku" value="PBKL09509403"><br><br>
Date: <input type="text" name="date" value="2018-09-18"><br><br>
Product price: <input type="text" name="items[][product_price]" value="165.00"><br><br>
Discount reason: <input type="text" name="adjustments[][reason]" value="Special">
Discount amount: <input type="text" name="adjustments[][amount]" value="20.00"><br><br>
Product total: <input type="text" name="total[price]" value="145.00"><br><br>
</form>
JSON输出(必需):
{
"items":[
{
"cat_id":18,
"product_name":"Men's t-shirt",
"product_price":165
}
],
"total":{
"price":145
},
"adjustments":[
{
"reason":"Special",
"amount":"20"
}
]
}
答案 0 :(得分:1)
要删除不需要的输入,可以使用delete
运算符。
var jsons = $("form").serializeJSON();
delete jsons.first_name;
delete jsons.last_name;
我不确定为什么它不能正确维护序列。如果是真的,这听起来像是您使用的serializeJSON
插件中的错误。可能还有其他更好的实现方式。