如何将数据从多个输入字段转换为单个JSON对象,以将其进一步插入单个mysql字段

时间:2019-03-31 10:35:11

标签: php jquery mysql json ajax

我正在处理一个表单,用户将在其中插入有关产品的数据。我有一个带有产品名称的mySql表,该表具有3列,即ID,product_name和属性。

现在问题出在属性上,我希望用户能够添加自己的属性及其值,例如Size = 3inche和weight = 12kgs等。

我设计了一个下面的表格。

    <form action="" method="post">
        <table>
            <tr><td><label for="">Product Name</label></td><td><input type="text" name="p_name"></td></tr>

        <tr><td><label for="">Attribute</label></td><td><input type="text" name="attributes['attribute']"><br></td></tr>

        <tr><td><label for="">value</label></td><td><input type="text" name="attributes['value']"><br></td></tr>
        <tr><td><label for="">Attribute</label></td><td><input type="text" name="attributes['attribute']"><br></td></tr>

        <tr><td><label for="">value</label></td><td><input type="text" name="attributes['value']"><br></td></tr>
        <tr><td colspan="2" align="center" ><input type="submit" name="submit" value="Submit"></td></tr>



        </table>
    </form>

所以基本上我想要的是$_POST['attributes']返回一个属性数组,我应该能够将其转换为JSON对象。 JSON对象应类似于{"'attribute'":"Size","'value'":"12" "'attribute'":"Weight","'value'":"10"}

之后,我将以JSON格式将该数据插入到mysql表的字段属性中。我已经尝试了很多方法,但是我只能检索到最后输入的一个属性。

我可以寻求帮助吗?

1 个答案:

答案 0 :(得分:1)

虽然也可以在此处形成所需的数据,但是我已经按照当前请求进行了编码,

这是代码:

html

<form   action="" method="post">
    <table>
        <tr><td><label for="">Product Name</label></td><td><input type="text" name="p_name"></td></tr>

    <tr><td><label for="">Attribute</label></td><td><input type="text" name="attributes['attribute']"><br></td></tr>

    <tr><td><label for="">value</label></td><td><input type="text" name="attributes['value']"><br></td></tr>
    <tr><td><label for="">Attribute</label></td><td><input type="text" name="attributes['attribute']"><br></td></tr>

    <tr><td><label for="">value</label></td><td><input type="text" name="attributes['value']"><br></td></tr>
    <tr><td colspan="2" align="center" ><input type="submit" name="submits"   value="Submit"></td></tr>



    </table>
</form>

只需将提交按钮的名称更改为提交,即:name =“ submits”

添加了jQuery

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.js"></script>

<script>
$("[name='submits']").click((e)=>{
    e.preventDefault();
$("input[type='text']").map(d=>{
    if($($("input[type='text']")[d]).prop('name')!='p_name'){
        $($("input[type='text']")[d]).prop('name',`attributes[${$($("input[type='text']")[d]).val()}]` )
    }
})
$("form").submit();
})
</script>

at [d]).prop('name',属性[$ {$($(“ input [type ='text']”“)[d])。val()}] )

我使用了模板文字,即:“`”反引号