Вызов данных BLOB-объектов с помощью AJAX - PullRequest
0 голосов
/ 21 ноября 2018

У меня есть код, и этот код вызывает некоторые данные из моей базы данных MySql, а затем показывает его в <p>, он работает отлично, но когда я хочу вызвать изображение, сохраненное в типе mediumblob, он делаетне работает.

Вот код

Ajax.js

$(document).on("ready", function() {
    $("#select").on("change", function(e) {
        var option = $(this).val();
        if(option.toLowerCase() !== "ninguno") { 
            var dataToSend = JSON.parse('{"name": "reference", "value": "'+option+'"}');
            ajaxProcess(dataToSend);
        } else { 
            $("p").each( function() {
                $(this).html("");
            });
        }
    });


    function ajaxProcess(dataToSend) {
        $.ajax({
            url: "process.php", 
            dataType: "json", 
            data: dataToSend, 
            type: "get" 
            }
        )
        .done( function(data) {
            $("#ram").html(data["ram"]);
            $("#camara").html(data["camara"]);
            $("#imagen").html(data["imagen"]); //Here's the problem
        })
        .fail( function(jqXHR,textStatus,errorThrown) {
            console.log("Can´t get the data");
        });
    }
}); 

Когда я выбираю значение в выпадающем списке, он показывает сообщение об ошибке «Не удается получить данные»

Process.php

<?php

$connection = new mysqli("127.0.0.1","root","","labash");
$connection->set_charset("utf8");

if($connection->connect_errno)
    throw new Exception("Error al conectar a la base de datos");

$stmt = $connection->stmt_init();
$query = "SELECT ram,camara,imagen FROM celulares WHERE reference=?";

if($stmt->prepare($query)) { // prepare the sentence
    $name = $_GET["value"];
    $stmt->bind_param("s", $name); //bind data
    $stmt->execute(); // execute the sentence
    $result = $stmt->get_result(); // get the result
    $connection->close();
    echo json_encode($result->fetch_assoc()); // get the data as JSON
}

В HTML-коде я называю данные «оперативной памяти» (например) в <p id="ram">, и это работает, но изображение не.Заранее спасибо

1 Ответ

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

Я решаю это

Во-первых: я использую конвертер Base64 image

Затем я копирую код и сохраняю этот код в базе данных

А вот новый код Ajax.js файла:

    $("#imagen").attr('src', data["imagen_encode"]);

imagen_encode - это новый столбец моей таблицы в базе данных.Я вставляю весь код конвертера Base64 и сохраняю его в столбце imagen_encode.И я называю это в HTML <img id="imagen">

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