json, ajax и php Ошибка печати преобразованного json в строку - PullRequest
0 голосов
/ 02 июля 2019

php-файл содержит следующую функцию

   function cargarP(){
   include("conection.php");
    $sqlQuery = "SELECT * FROM producto";
    $rs = $mysqli->query($sqlQuery);
    $result = $rs->fetch_assoc();
  $rsFormat = array();

  foreach($rs as $row)
  {
    $imagen= base64_encode($row["imagen"]);
    $nombre = $row["nombre"];
    $precio = $row["precio"];

    $html ="<div class='col-md-4 product-men mt-5' 
style='position:block;'><div class='men-pro-item simpleCart_shelfItem'> 
  <div class='men-thumb-item text-center'><center><img width='200px' 
height='200px' src='data:image/jpg;base64,$imagen' /></center><div 
class='men-cart-pro'><div class='inner-men-cart-pro'><a 
href='single.html' class='link-product-add-cart'>Ver Producto</a></div> 
 </div></div><div class='item-info-product text-center border-top mt-4'> 
 <h4 
class='pt-1'><a href='single.html'>$nombre</a></h4><div class='info- 
product-price my-2'><span class='item_price'>$precio</span></div><div 
class='snipcart-details top_brand_home_details item_add single-item hvr- 
outline-out'><form action='#' method='post'><fieldset><input 
type='hidden' 
name='cmd' value='_cart' /><input type='hidden' name='add' value='1' /> 
<input type='hidden' name='business' value='' /><input type='hidden' 
name='item_name' value='Samsung Galaxy J7' /><input type='hidden' 
name='amount' value='20.00' /><input type='hidden' name='discount_amount' 
value='1.00' /><input type='hidden' name='currency_code' value='MX' /> 
<input type='hidden' name='return' value='' /><input type='hidden' 
name='cancel_return' value='' /><input type='submit' name='submit' 
value='Añadir al Carrito' class='button btn' /></fieldset></form></div> 
</div></div></div>";
    $row_array["html"] = $html;
    array_push($rsFormat,$row_array);
    /*$rsFormat["aaData"][] = array($imagen,
                                  $row["nombre"],
                                  $row["precio"]
                              );*/
  }
  echo json_encode($rsFormat);
}

файл js

  function cargaPro(){
  var data = new FormData();
  data.append("controller", "cargarP");


  $.ajax({
    type: 'POST',
    url: 'php/productos.php',
    data: data,
    contentType: false,
    dataType: "json",
    cache: false,
    processData: false,
    success: function (data) {

        for(let i=0;i<data.length;i++){    
                var myJSON = JSON.stringify(data);
                myJSON.replace("html", ""); // "House" // House
                document.getElementById("divP").innerHTML=myJSON;


          }
        }
    });
  } 

Я надеюсь напечатать изображение и данные, которые, если он это делает, но кроме этого, он печатает меня

структура JSON

[{"html": "image, data"}]

изображение и данные, если они показаны, но я также печатаю HTML-код, который является ключом, а также скобки и ключи

1 Ответ

0 голосов
/ 02 июля 2019

Ваше html-содержимое будет возвращено в виде html-ключа в массив данных, поэтому вам нужно будет найти его в первом индексе массива с ключом 'html' следующим образом:

var myJSON = JSON.stringify(data[i].html);
myJSON.replace("html", ""); // "House" // House
document.getElementById("divP").innerHTML=myJSON;

и есть еще одна ошибка в функции php в образе src, вам нужно добавить значение base64, как это (пропуская ".." для конкатата)

src='data:image/jpg;base64,".$imagen."'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...