ОПУБЛИКОВАТЬ данные, извлеченные из функции

#javascript #php #jquery #html

#javascript #php #jquery #HTML

Вопрос:

У меня есть скрипт захвата подписи, использующий JS и Jquery и HTML canvas.

Я обрабатываю подпись, преобразуя ее в ИЗОБРАЖЕНИЕ / PNG с помощью PNGURL. Что я хотел бы сделать, так это опубликовать результирующий результат PNGURL.. но у меня возникла проблема. Я не очень хорошо знаком с JS, но я работал над этим около двух дней. Как вы сможете видеть, у меня возникла проблема с публикацией hiddenDataURL. Страница публикуется, переходит на следующую страницу, но hiddenDataURL отображается пустым. Я протестировал JS с предупреждением, чтобы показать, что подпись правильно преобразуется в PNGURL, но она либо неправильно возвращается в скрытый элемент формы, либо неправильно публикуется в signatureaccepted.php страница должным образом. любая помощь приветствуется.

Вот мои две страницы.

JS на отдельной странице.

 function signatureSave() {

    var canvas = document.getElementById("newSignature"); // save canvas image as data url (png format by default)
    var dataURL = canvas.toDataURL("image/png", 0.1);
    document.getElementById("hiddenDataURL").value = dataURL;
    document.getElementById("hiddenForm").submit();

};
 

и HTML-форма, которую я пытаюсь опубликовать.

 <!DOCTYPE html>
<html>

<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

    <script src="todataurl.js"></script>
    <script src="signature.js"></script>

</head>

<body>

    <div id="canvas">
        <canvas class="roundCorners" id="newSignature" style="position: relative; margin: 0; padding: 0; border: 1px solid #c4caac;"></canvas>
    </div>

    <script>
        signatureCapture();
    </script>
    <form id="hiddenForm" action="signatureaccepted.php" method="POST">
        <input type="hidden" id="hiddenDataURL" />

    </form>

    <button type="button" onclick="signatureSave()">Sign Out</button>

    <button type="button" onclick="signatureClear()">
                Clear signature
            </button>
    </br>
    Saved Image
    </br>
    <img id="saveSignature" alt="Saved image png" />

</body>

</html>
 

Комментарии:

1. посмотрите на свою консоль разработчика для js и отчетов об ошибках для php php.net/manual/en/function.error-reporting.php что нибудь пришло для этого?

2. ничего ни в том, ни в другом: (

3. я пытаюсь увидеть, есть ли дыра в том, как она была отправлена

Ответ №1:

Вам нужно, чтобы у входных данных был атрибут name, чтобы он был отправлен вместе с формой отправки

 <form id="hiddenForm" action="signatureaccepted.php" method="POST">
  <input type="hidden" id="hiddenDataURL" name="hiddenDataURL"/>

</form>
 

это не обязательно должно совпадать с ID, но в данном случае это означает наименьшее количество изменений для вас

Комментарии:

1. Боже мой. Большое спасибо, ты мой герой. Если бы я не был лысым, я бы вырвал свои волосы. Не могу поверить, что это что-то настолько маленькое.

2. Cant believe it something so small вот что она сказала: p

3. Дело в том, что буквально за последние пару дней мы обдумывали идею, связанную с отправкой рисованных изображений с мобильных устройств. В вашем первом вопросе об этом сегодня вы сэкономили мне много времени, изучая кодирование мыши / касания и т. Д., Так что это беспроигрышный вариант

4. Потрясающе. Рад, что мы смогли помочь друг другу!