как использовать php для получения данных из предустановленных данных формы ввода? - PullRequest
0 голосов
/ 13 июля 2020

У меня есть ниже предустановленные данные внутри поля ввода. Я хочу получить 20 из "validate-item-blank-quantity" -> "minAllowed".

Можно ли использовать Php, чтобы получить значение оттуда?

Спасибо

    <input type="number" name="qty_custom" id="qty_custom" value="" title="Quantity" class="input-text qty mage-error" data-validate="{"required-number":true,"validate-item-quantity":{"minAllowed":1,"maxAllowed":1000000,"qtyIncrements":1},"validate-item-blank-quantity":{"minAllowed":20,"maxAllowed":1000000,"qtyIncrements":10}}" aria-invalid="true" aria-describedby="qty_custom-error">

1 Ответ

1 голос
/ 13 июля 2020

Как указано в комментарии lewis4, вы можете отправлять только атрибуты name и value. В любом случае, вы можете использовать простой JS для создания нового поля hidden и отправки с данными из других атрибутов.

Предполагая, что значение data-validate всегда действительно JSON, это должно работать:

HTML

<form action="yourscript.php" id="myform" method="post">
    <input type="number" name="qty_custom" id="qty_custom" value="" title="Quantity" class="input-text qty mage-error" data-validate='{"required-number":true,"validate-item-quantity":{"minAllowed":1,"maxAllowed":1000000,"qtyIncrements":1},"validate-item-blank-quantity":{"minAllowed":20,"maxAllowed":1000000,"qtyIncrements":10}}' aria-invalid="true" aria-describedby="qty_custom-error">
    <input type="submit" value="Send">
</form>

<script>
    $('[data-validate]').each(function () {
        let $el = $(this);
        $('#myform').append("<input type='hidden' name='" + $el.attr('name') + '[data-validate]' + "' value='" + $el.attr('data-validate') + "' />");
    });
</script>

PHP yourscript.php

<?php
if (!is_null($_POST) && !is_null($_POST['qty_custom']['data-validate'])) {
    $arr = json_decode($_POST['qty_custom']['data-validate'], true);
    echo "Minimal value is: " . $arr['validate-item-quantity']['minAllowed'], '<br>';
    echo "Maximal value is: " . $arr['validate-item-quantity']['maxAllowed'], '<br>';
}

Не забудьте включить jQuery в head

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>

ПРЕДУПРЕЖДЕНИЕ:

Помните, что если вы хотите сделать некоторую проверку на стороне сервера, вы не должны отправлять ее через свой запрос, так как им можно легко манипулировать, поэтому проверка может можно изменить или даже пропустить.

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