44 lines
1.3 KiB
PHP
44 lines
1.3 KiB
PHP
<?php
|
|
include('include/headscript.php');
|
|
|
|
header('Content-Type: application/json; charset=utf-8');
|
|
|
|
try {
|
|
$idmatrice = (int)($_POST['idmatrice'] ?? 0);
|
|
$raw = $_POST['idlinee'] ?? '[]';
|
|
$idlinee = json_decode($raw, true);
|
|
|
|
if ($idmatrice <= 0) {
|
|
echo json_encode(['success' => false, 'message' => 'Invalid idmatrice']);
|
|
exit;
|
|
}
|
|
if (!is_array($idlinee)) $idlinee = [];
|
|
|
|
// normalizza a int e rimuovi duplicati
|
|
$idlinee = array_values(array_unique(array_filter(array_map('intval', $idlinee), fn($v) => $v > 0)));
|
|
|
|
$db = DBHandlerSelect::getInstance();
|
|
$pdo = $db->getConnection();
|
|
|
|
$pdo->beginTransaction();
|
|
|
|
// rimuovi vecchie associazioni
|
|
$stmt = $pdo->prepare("DELETE FROM matrici_lines WHERE idmatrice = ?");
|
|
$stmt->execute([$idmatrice]);
|
|
|
|
// inserisci nuove
|
|
if (!empty($idlinee)) {
|
|
$stmt = $pdo->prepare("INSERT INTO matrici_lines (idmatrice, idlinea) VALUES (?, ?)");
|
|
foreach ($idlinee as $idlinea) {
|
|
$stmt->execute([$idmatrice, $idlinea]);
|
|
}
|
|
}
|
|
|
|
$pdo->commit();
|
|
|
|
echo json_encode(['success' => true, 'message' => 'Associazioni aggiornate']);
|
|
} catch (Throwable $e) {
|
|
if (isset($pdo) && $pdo->inTransaction()) $pdo->rollBack();
|
|
echo json_encode(['success' => false, 'message' => 'Server error']);
|
|
}
|