Возможность нажать кнопку на странице «test2. php», получить данные с сервера, перейти на другую страницу «test3. php» и вставить эти данные в форму. - PullRequest
0 голосов
/ 09 февраля 2020

Мне нужно иметь возможность нажать кнопку на странице «test2. php», чтобы получить данные с сервера, проверить, есть ли в этом массиве данных данные «цена», если да, перейти на другую страницу «test3. * 1009». * "и вставьте эти данные в форму, чтобы я мог их отредактировать, ЕСЛИ не перейдите к test4. php и вставьте эти данные в форму на этой странице, чтобы их можно было редактировать.

Сейчас я могу сделать проверка и навигация, но не удается получить данные для вставки в форму.

var products;
$(document).ready(function () {
// var currentItem = 1;

fetchProductsForCurrentPage();

async function handleResponse(response) {
    if (response.status >= 200 && response.status < 400) {
        var productsData = await response.json();
        console.log('response');
        console.log(productsData.data);
        products = productsData.data;
        createProductsDataHTML(productsData);
        //createPaginationHTML(productsData);
    } else {
        console.log("connected to the server but encountered an error");
    }
}

$(document).on('click', '#edit_btn', function () {
    const productId = $(this).parent().children('.product_id').attr('id');
    const product = getProductFromList(productId);

    console.log('selected product');
    console.log(product);
    if (product.price) {
        //Navigate to the product without variance page.
        window.location.href = 'test3.php';
        console.log(product.name);

    } else {
        //Navigate to the product with variance page.
        window.location.href = 'test4.php';
        console.log(product);

    }

    if (typeof (Storage) !== "undefined") {
        // Store
        // localStorage.setItem("lastname", "Smith");
        localStorage.setItem("id", JSON.stringify(product.id));
        localStorage.setItem("name", JSON.stringify(product.name));
        localStorage.setItem("desc", JSON.stringify(product.description));
        // Retrieve
        document.getElementById("id").innerHTML = JSON.parse(localStorage.getItem("id"));
        document.getElementById("name").innerHTML = JSON.parse(localStorage.getItem("name"));
        document.getElementById("desc").innerHTML = JSON.parse(localStorage.getItem("desc"));
        document.getElementById("input").value = JSON.parse(localStorage.getItem("desc"));

    } else {
        document.getElementById("result").innerHTML = "Sorry, your browser does not support Web Storage...";
    }


    console.log(product.id);
});


function getProductFromList(id) {
    for (var p in products) {
        if (products[p].id == id) {
            return products[p];
        }
    }
}

function fetchProductsForCurrentPage() {
    getRequest(
        productsEndpoint + '?page=' + currentItem
    ).then(response => {
        handleResponse(response);
    }).catch(error => {
        console.log('Error: ' + error)
    });
}


// function createProductsDataHTML(fbcProductsData) {
//     var rawProductsDataTemplate = document.getElementById("productsDataTemplate").innerHTML;
//     var compiledProductsDataTemplate = Handlebars.compile(rawProductsDataTemplate);
//     var generatedProductsDataHTML = compiledProductsDataTemplate(fbcProductsData);

//     var productsDataContainer = document.getElementById("productsData-container");
//     productsDataContainer.innerHTML = generatedProductsDataHTML;
// }
});

пример формы на тестовых страницах, где данные должны быть вставлены

<form>
                                <div class="form-group mb-3">
                                    <label for="exampleInputEmail1">name</label>
                                    <input type="text" class="form-control" id="id"
                                        aria-describedby="basic-addon1">
                                </div>
                                <div class="form-group mb-3">
                                    <label for="exampleInputEmail1">description</label>
                                    <input type="text" class="form-control" id="name"
                                        aria-describedby="basic-addon1">
                                </div>
                                <div class="form-group mb-3">
                                    <label for="exampleInputEmail1">Price</label>
                                    <input type="text" class="form-control" id="desc"
                                        aria-describedby="basic-addon1">
                                </div>
                                <div class="form-group mb-3">
                                    <label for="exampleInputEmail1">Email address</label>
                                    <input type="text" class="form-control" id="input"
                                        aria-describedby="basic-addon1">
                                </div>

                                <button type="button" id="edit_btn" class="btn btn-primary">save</button>
                            </form>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...