Отправить HTML-форму с переменной Javascript в PHP -> Mysql - PullRequest
0 голосов
/ 01 ноября 2018

Я написал веб-страницу, которая должна походить на опрос, который представляет обе записи в текстовых полях HTML, а также изображения рисунков на холсте. В настоящее время мой PHP-файл переносится из HTML-формы через «Post» для подключения к базе данных после нажатия «Submit». В сценарии внутри моего файла HTMl я преобразую рисунок холста с помощью «var dataURL = canvas.toDataURL ();».

Мне было интересно, как я буду (надеюсь, используя тот же PHP-файл) отправлять var dataURL в mySQL вместе с моей HTML-формой. Я также не совсем уверен, как dataURL должен храниться в MySQL. Но цель состоит в том, чтобы сделать запись типа «ID, Name, Image (dataURL)». Я все еще довольно новичок в PHP, и я слышал, что обычно используется AJAX, но я не уверен, как заставить это работать вместе с формой HTML.

Любая помощь приветствуется, спасибо!

Ответы [ 3 ]

0 голосов
/ 01 ноября 2018

Как вы отправляете данные в настоящее время? а вы указали формат данных в toDataURL ()? Вы также можете проверить следующее: Декодирование canvas todataURL и Отправка canvas.toDataUrl () в php через AJAX , Вы также можете отправить его, используя canvas.toDataURL ("image / png") в качестве изображения.

Этот вопрос является ближайшим к вашему вопросу, и возможный дубликат имеет вид Как сохранить холст HTML5 в качестве изображения на сервере?

также пройти через Как сохранить холст как изображение с canvas.toDataURL ()? и Отправка формы с передачей данных формы AJAX в PHP без обновления страницы

0 голосов
/ 01 ноября 2018

Вы захотите использовать AJAX, если хотите отправить данные формы без фактической навигации по URL-адресу скрипта в вашем браузере. AJAX позволяет отправлять данные в сценарий и получать ответ от сценария, и все это, не покидая страницы, на которой вы находитесь. Если это то, что вы ищете, есть много примеров того, как использовать AJAX на SO и других источниках. Однако, поскольку у вас есть некоторые пользовательские данные, которые вы хотите отправить вместе, у вас есть два варианта:

  1. Добавьте скрытый ввод в вашу форму и заполните значение этого скрытого ввода dataURL.

  2. Добавьте пользовательские данные в данные сериализованной формы.

Если перейти ко второму варианту, ваш вызов AJAX будет выглядеть примерно так:

// this is the id of the form
$("#idForm").submit(function(e) {
    var form = $(this);
    var url = form.attr('action'); //PHP script URL can also be manually entered here if the form does not have the 'action' attribute set

    // get the dataURL from the canvas element
    var dataURL = encodeURIComponent(canvas.toDataURL());

    // build AJAX data string
    var dataString = form.serialize() + "&dataURL=" + dataURL;

    $.ajax({
        type: "POST",
        url: url,
        data: dataString,
        success: function(data){
            alert(data); // *optional* show response from the php script.
        }
    });

    e.preventDefault(); // cancel actual form submission.
});

Что касается хранения значения dataURL в базе данных MySQL, вы можете использовать поле в формате TINYTEXT, TEXT, MEDIUMTEXT или LONGTEXT в зависимости от ожидаемого размера создаваемых строк dataURL ( см. типы BLOB и TEXT в Справочном руководстве по MySQL 8.0). Удачи!

0 голосов
/ 01 ноября 2018

если вы знаете javascript, тогда изучите jQuery, так как это поможет сделать запрос ajax более простым. С помощью ajax вы можете отправлять данные, используя POST.

Для хранения URL-адреса данных вам необходимо указать адрес файла в таблице mysql: Например: если изображение моего профиля находится в «rootDIR / Profiles / myname.jpg», сохраните «profile / myname.jpg» в таблице.

...