Мне нужно иметь возможность нажать кнопку на странице «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>