immissione_dati.php
<?php
declare(strict_types=1);
require 'template.php';
require_once 'json_ajax.php';
$name = 'tmp' . gmdate('siH');
// Elenco dei problemi di esempio salvati in esempi/ (caricabili nel form via AJAX).
$optionsEsempi = '';
foreach ((new SimplexJsonAjaxService())->listExamples(__DIR__) as $nomeEsempio) {
$safe = htmlspecialchars($nomeEsempio, ENT_QUOTES, 'UTF-8');
$optionsEsempi .= "<option value=\"{$safe}\">{$safe}</option>";
}
$content = <<<HTML
<script src="immissione_dati.js"></script>
<form id="simplexForm" name="form1" method="post" action="simplesso.php" class="d-grid gap-3">
<input type="hidden" name="name" value="{$name}">
<fieldset class="border rounded p-3">
<legend class="float-none w-auto px-2 fs-6">Impostazioni Problema</legend>
<div class="mb-3">
<span class="me-3">Il problema e' di:</span>
<label class="form-check-label me-3">
<input class="form-check-input me-1" type="radio" name="minmax" value="min" checked>
minimo
</label>
<label class="form-check-label">
<input class="form-check-input me-1" type="radio" name="minmax" value="max">
massimo
</label>
</div>
<div class="row g-3">
<div class="col-md-4">
<label class="form-label" for="numVariables">Numero variabili</label>
<input class="form-control" id="numVariables" type="number" name="numVariables" min="0" max="10" value="2" required>
</div>
<div class="col-md-4">
<label class="form-label" for="numConstraints">Numero vincoli</label>
<input class="form-control" id="numConstraints" type="number" name="numConstraints" min="0" max="10" value="2" required>
</div>
<div class="col-md-4">
<label class="form-label invisible">Placeholder</label>
<div class="form-check form-switch">
<label class="form-check-label" for="intera">Variabili intere</label>
<input class="form-check-input" type="checkbox" id="intera" name="intera" value="true">
</div>
</div>
</div>
<p class="text-muted mt-3 mb-0">Le variabili sono intese non negative.</p>
</fieldset>
<fieldset class="border rounded p-3">
<legend class="float-none w-auto px-2 fs-6">Modello</legend>
<div class="mb-3">
<span class="me-2">Carica esempio:</span>
<button type="button" class="btn btn-sm btn-outline-secondary me-2" data-example="max2">PL max (2x2)</button>
<button type="button" class="btn btn-sm btn-outline-secondary me-2" data-example="min3">PL min (3x3)</button>
<button type="button" class="btn btn-sm btn-outline-secondary me-2" data-example="int2">PLI max (2x3)</button>
<button type="button" class="btn btn-sm btn-outline-secondary" data-example="parfums">Prod profumi (2x3)</button>
</div>
<div class="mb-3 d-flex flex-wrap align-items-center gap-2">
<label class="mb-0" for="exampleFile">Carica un problema salvato:</label>
<select class="form-select form-select-sm d-inline-block w-auto" id="exampleFile" name="exampleFile">
<option value="" selected>— scegli —</option>
{$optionsEsempi}
</select>
<button type="button" class="btn btn-sm btn-outline-secondary" id="loadExampleFile">Carica</button>
<a class="small ms-1" id="viewExampleFile" href="show_esempi.php" target="esempi" hidden>vedi la soluzione »</a>
</div>
<div id="modelContainer" class="d-grid gap-3"></div>
</fieldset>
<div class="d-flex gap-2">
<button class="btn btn-primary" type="submit">Procedi</button>
<button class="btn btn-outline-secondary" type="reset">Cancella</button>
</div>
</form>
HTML;
// Le istruzioni per visualizzare la pagina.
$title = 'Immissione dati';
$pagina = new template();
$pagina->setta_titolo($title);
$pagina->setta_filename(basename($_SERVER['SCRIPT_NAME']));
$pagina->setta_contenuto($content);
print($pagina->mostra_pagina());
?>