feat: integrar campos WhatsForm en formulario de visa

Reemplaza los 4 campos básicos del formulario de visa con 40+ campos
del DS-160 organizados en 7 secciones (datos personales, patrocinador,
historial migratorio, dirección, datos familiares, empleo, estudios).
Agrega soporte para tipos heading (divisor de sección) y radio buttons.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Gestoría LP
2026-03-02 05:25:58 +00:00
parent eb030a64f8
commit dda0cc4ba0
4 changed files with 113 additions and 6 deletions

View File

@@ -80,26 +80,39 @@ require_once __DIR__ . '/includes/header.php';
</div>
<?php foreach ($servicio['campos_formulario'] as $campo): ?>
<?php if ($campo['type'] === 'heading'): ?>
<h3 class="form-heading"><?= htmlspecialchars($campo['label']) ?></h3>
<?php else: ?>
<div class="form-group">
<label for="<?= htmlspecialchars($campo['name']) ?>">
<?= htmlspecialchars($campo['label']) ?>
<?= $campo['required'] ? ' *' : '' ?>
<?= !empty($campo['required']) ? ' *' : '' ?>
</label>
<?php if ($campo['type'] === 'select'): ?>
<select id="<?= htmlspecialchars($campo['name']) ?>" name="<?= htmlspecialchars($campo['name']) ?>" class="form-control" <?= $campo['required'] ? 'required' : '' ?>>
<select id="<?= htmlspecialchars($campo['name']) ?>" name="<?= htmlspecialchars($campo['name']) ?>" class="form-control" <?= !empty($campo['required']) ? 'required' : '' ?>>
<option value="">Seleccione...</option>
<?php foreach ($campo['options'] as $opt): ?>
<option value="<?= htmlspecialchars($opt) ?>"><?= htmlspecialchars($opt) ?></option>
<?php endforeach; ?>
</select>
<?php elseif ($campo['type'] === 'radio'): ?>
<div class="form-radio-group">
<?php foreach ($campo['options'] as $opt): ?>
<label class="form-radio-label">
<input type="radio" name="<?= htmlspecialchars($campo['name']) ?>" value="<?= htmlspecialchars($opt) ?>" <?= !empty($campo['required']) ? 'required' : '' ?>>
<?= htmlspecialchars($opt) ?>
</label>
<?php endforeach; ?>
</div>
<?php elseif ($campo['type'] === 'textarea'): ?>
<textarea id="<?= htmlspecialchars($campo['name']) ?>" name="<?= htmlspecialchars($campo['name']) ?>" class="form-control" rows="4" <?= $campo['required'] ? 'required' : '' ?> placeholder="Escribe aqui..."></textarea>
<textarea id="<?= htmlspecialchars($campo['name']) ?>" name="<?= htmlspecialchars($campo['name']) ?>" class="form-control" rows="4" <?= !empty($campo['required']) ? 'required' : '' ?> placeholder="Escribe aqui..."></textarea>
<?php elseif ($campo['type'] === 'date'): ?>
<input type="date" id="<?= htmlspecialchars($campo['name']) ?>" name="<?= htmlspecialchars($campo['name']) ?>" class="form-control" <?= $campo['required'] ? 'required' : '' ?>>
<input type="date" id="<?= htmlspecialchars($campo['name']) ?>" name="<?= htmlspecialchars($campo['name']) ?>" class="form-control" <?= !empty($campo['required']) ? 'required' : '' ?>>
<?php else: ?>
<input type="text" id="<?= htmlspecialchars($campo['name']) ?>" name="<?= htmlspecialchars($campo['name']) ?>" class="form-control" <?= $campo['required'] ? 'required' : '' ?>>
<input type="text" id="<?= htmlspecialchars($campo['name']) ?>" name="<?= htmlspecialchars($campo['name']) ?>" class="form-control" <?= !empty($campo['required']) ? 'required' : '' ?>>
<?php endif; ?>
</div>
<?php endif; ?>
<?php endforeach; ?>
<button type="submit" class="btn btn--primary btn--block">