mirror of
https://codeberg.org/ThisIsMiseryy/techstore
synced 2026-05-14 12:42:04 +00:00
Aggiunta stylesheet pagina gestione prodotti
This commit is contained in:
@@ -141,32 +141,35 @@ $stmt_prod->close();
|
|||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
<?php foreach ($products as $product): ?>
|
<?php foreach ($products as $product): ?>
|
||||||
<tr>
|
<tr class="product-row">
|
||||||
<form action="" method="post" enctype="multipart/form-data">
|
<form class="product-form" action="" method="post" enctype="multipart/form-data">
|
||||||
<td><?php echo $product['ProductID']; ?><input type="hidden" name="product_id" value="<?php echo $product['ProductID']; ?>"></td>
|
<td class="product-id-cell"><?php echo $product['ProductID']; ?><input type="hidden" name="product_id" value="<?php echo $product['ProductID']; ?>"></td>
|
||||||
<td><input type="text" name="name" value="<?php echo htmlspecialchars($product['ProductName']); ?>" required></td>
|
<td class="product-name-cell"><input class="product-name-input" type="text" name="name" value="<?php echo htmlspecialchars($product['ProductName']); ?>" required></td>
|
||||||
<td><textarea name="description" required><?php echo htmlspecialchars($product['Description']); ?></textarea></td>
|
<td class="product-description-cell"><textarea class="product-description-textarea" name="description" required><?php echo htmlspecialchars($product['Description']); ?></textarea></td>
|
||||||
<td>
|
<td class="product-category-cell">
|
||||||
<select name="category_id" required>
|
<select class="product-category-select" name="category_id" required>
|
||||||
<?php foreach ($categories as $cat): ?>
|
<?php foreach ($categories as $cat): ?>
|
||||||
<option value="<?php echo $cat['CategoryID']; ?>" <?php if ($cat['CategoryID'] == $product['CategoryID']) echo 'selected'; ?>><?php echo htmlspecialchars($cat['Name']); ?></option>
|
<option value="<?php echo $cat['CategoryID']; ?>" <?php if ($cat['CategoryID'] == $product['CategoryID']) echo 'selected'; ?>><?php echo htmlspecialchars($cat['Name']); ?></option>
|
||||||
<?php endforeach; ?>
|
<?php endforeach; ?>
|
||||||
</select>
|
</select>
|
||||||
</td>
|
</td>
|
||||||
<td><input type="number" name="price" step="0.01" value="<?php echo $product['Price']; ?>" required></td>
|
<td class="product-price-cell"><input class="product-price-input" type="number" name="price" step="0.01" value="<?php echo $product['Price']; ?>" required></td>
|
||||||
<td>
|
<td class="product-stock-cell">
|
||||||
<div style="display: flex; align-items: center;">
|
<div class="stock-control">
|
||||||
<button type="button" onclick="adjustStock(this.nextElementSibling, -1)">-</button>
|
<button type="button" class="stock-button" onclick="adjustStock(this.nextElementSibling, -1)">-</button>
|
||||||
<input type="number" name="stock" min="0" value="<?php echo $product['StockQuantity']; ?>" required style="width: 60px; text-align: center;">
|
<input class="stock-input" type="number" name="stock" min="0" value="<?php echo $product['StockQuantity']; ?>" required>
|
||||||
<button type="button" onclick="adjustStock(this.previousElementSibling, 1)">+</button>
|
<button type="button" class="stock-button" onclick="adjustStock(this.previousElementSibling, 1)">+</button>
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td class="product-image-cell">
|
||||||
<?php $image_display = '/img/' . ltrim($product['ImagePath'], '/'); ?>
|
<?php $image_display = '/img/' . ltrim($product['ImagePath'], '/'); ?>
|
||||||
<img src="<?php echo htmlspecialchars($image_display); ?>" alt="Immagine" style="max-width: 100px;"><br>
|
<img class="product-image-preview" src="<?php echo htmlspecialchars($image_display); ?>" alt="Immagine"><br>
|
||||||
<input type="file" name="image" accept="image/*">
|
<div class="image-upload">
|
||||||
<input type="hidden" name="current_image" value="<?php echo htmlspecialchars(basename($product['ImagePath'])); ?>"></td>
|
<input class="product-image-input" type="file" name="image" accept="image/*">
|
||||||
<td><button type="submit" name="save">Salva</button></td>
|
<input type="hidden" name="current_image" value="<?php echo htmlspecialchars(basename($product['ImagePath'])); ?>">
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
<td class="product-action-cell"><button class="save-button" type="submit" name="save">Salva</button></td>
|
||||||
</form>
|
</form>
|
||||||
</tr>
|
</tr>
|
||||||
<?php endforeach; ?>
|
<?php endforeach; ?>
|
||||||
|
|||||||
@@ -256,6 +256,92 @@ form button:hover {
|
|||||||
padding: 20px;
|
padding: 20px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.product-table {
|
||||||
|
width: 100%;
|
||||||
|
border-collapse: collapse;
|
||||||
|
margin-top: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.product-table th,
|
||||||
|
.product-table td {
|
||||||
|
border: 1px solid #ddd;
|
||||||
|
padding: 12px;
|
||||||
|
vertical-align: top;
|
||||||
|
}
|
||||||
|
|
||||||
|
.product-table th {
|
||||||
|
background-color: #f8f9fa;
|
||||||
|
font-weight: 700;
|
||||||
|
text-align: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
.product-row:hover {
|
||||||
|
background-color: #f7f9fb;
|
||||||
|
}
|
||||||
|
|
||||||
|
.product-name-input,
|
||||||
|
.product-description-textarea,
|
||||||
|
.product-category-select,
|
||||||
|
.product-price-input,
|
||||||
|
.stock-input,
|
||||||
|
.product-image-input {
|
||||||
|
width: 100%;
|
||||||
|
padding: 10px;
|
||||||
|
border: 1px solid #ccc;
|
||||||
|
border-radius: 4px;
|
||||||
|
box-sizing: border-box;
|
||||||
|
}
|
||||||
|
|
||||||
|
.product-description-textarea {
|
||||||
|
min-height: 80px;
|
||||||
|
resize: vertical;
|
||||||
|
}
|
||||||
|
|
||||||
|
.stock-control {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
gap: 8px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.stock-button {
|
||||||
|
width: 32px;
|
||||||
|
height: 32px;
|
||||||
|
border: none;
|
||||||
|
border-radius: 4px;
|
||||||
|
background-color: #007bff;
|
||||||
|
color: #fff;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
.stock-button:hover {
|
||||||
|
background-color: #0056b3;
|
||||||
|
}
|
||||||
|
|
||||||
|
.product-image-preview {
|
||||||
|
max-width: 100px;
|
||||||
|
display: block;
|
||||||
|
margin-bottom: 8px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.image-upload {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
gap: 8px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.save-button {
|
||||||
|
padding: 10px 16px;
|
||||||
|
background-color: #28a745;
|
||||||
|
color: #fff;
|
||||||
|
border: none;
|
||||||
|
border-radius: 4px;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
.save-button:hover {
|
||||||
|
background-color: #218838;
|
||||||
|
}
|
||||||
|
|
||||||
.admin-divider{
|
.admin-divider{
|
||||||
display: block;
|
display: block;
|
||||||
height: 1px;
|
height: 1px;
|
||||||
|
|||||||
Reference in New Issue
Block a user