Есть ли более разумный и важный функциональный способ отображения товаров из моей базы данных в моем магазине таким образом, чтобы я мог отсортировать их позже?

#javascript #php #html #e-commerce #webshop

#javascript #php #HTML #электронная коммерция #интернет-магазин

Вопрос:

Я знаю, что повторять html код — плохая практика, но я новичок, и я не нашел более подходящего способа. Также я могу сортировать свои товары, просто позволяя пользователю изменять sql запрос, что довольно просто (и да, это также делает меня уязвимым sql injections ), но я был бы открыт для совершенно новых предложений или руководств, которые вы знаете. Моя цель — показать все 43 товара в моей базе данных на моем веб-сайте и позволить пользователю сортировать их. Я бы также принял участие, javascript если это необходимо.

редактировать — я использую локальный xampp server .

 <? php
    foreach($json as $row) {
        echo '<div class="col-lg-4">
                < div class="trainer-item" >
                    <div class="image-thumb" >
                        <img src = "assets/images/product-6-720x480.jpg" alt = "" >
                    </div >
                    <div class="down-content" >
                        <span >
                            <sup > $ </sup > '($row[' ProductPrice ']); '
                        </span >

                        <h4 > '.($row[' ProductName ']).' </h4 >
    
                        <p > Product description</p >
    
                        <ul class="social-icons" >
                            <li ><a href = "product-details.html" >  Order </a ></li >
                        </ul >
                    </div >
                </div >
            </div > ';
  

Ответ №1:

Вы можете написать REST api для возврата элементов JSON из базы данных и вызывать его в пользовательском интерфейсе асинхронно:

 fetch(`http://RestApiUrl`)
        .then(function (response) {
            const json = response.json();
            for (row in json) {
                var div = document.createElement("div");
                div.setAttribute("class", "col-lg-4");

                var trainerItem = document.createElement("div");
                trainerItem.setAttribute("class", "trainer-item");

                var imageThumb = document.createElement("div");
                imageThumb.setAttribute("class", "image-thumb");

                var img = document.createElement("img");
                img.setAttribute("src", "assets/images/product-6-720x480.jpg");
                imageThumb.appendChild(img);

                var downContent = document.createElement("div");
                downContent.setAttribute("class", "down-content");

                var price = document.createElement("span");
                price.innerHTML  = `<sup>$</sup>${row.ProductPrice}`

                var name = document.createElement("h4");
                name.innerHTML  = row.ProductName
                downContent.appendChild(price);
                downContent.appendChild(name);

                trainerItem.appendChild(imageThumb);
                trainerItem.appendChild(downContent);

                div.appendChild(trainerItem);
            }
            /*Set the items to main div*/
            document.getElementById('main').innerHTML  = div;
        })  
 <div id="main" class="row"></div>  

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

1. Спасибо за подсказку! Извините, но я, возможно, перепутал вас с $ json, который на самом деле не является файлом json, а просто многомерным массивом, где каждый массив в массиве json представляет собой строку в базе данных, это решение все еще работает? или что мне нужно сделать, чтобы сделать его правильным файлом json?

2. Да, это будет работать. Здесь я ожидаю в ответ массив объектов.

3. Итак … я закодировал результат моего запроса в a . файл json и введите URL-адрес файла ( localhost/KUR/products.json ), и, похоже, он не работает, также я не уверен, что вы имеете в виду, написав свой собственный rest api

4. поможет ли это, если я поделюсь файлами?