Как преобразовать данные из нескольких полей ввода в один объект JSON для дальнейшей вставки их в одно поле mysql - PullRequest
0 голосов
/ 31 марта 2019

Я работаю над формой, куда пользователь будет вставлять данные о продуктах. У меня есть таблица 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 Ответ

1 голос
/ 31 марта 2019

Хотя здесь могут быть сформированы и нужные данные, но я закодировал в соответствии с текущим запросом,

вот код:

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>

Просто измените имя кнопки отправки на передает т.е.: имя = "отправляет"

добавили 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>

при [d]).prop('name', атрибутах [$ {$ ($ ("input [type = 'text']") [d]). Val ()}] )

Я использовал шаблонный литерал, т. Е. "` "Обратная пометка

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...