Ayuda con PHPWord

Buenos días compañeros

A ver si me podeis ayudar, pq es una gilipollez, pero el caso es q llevo 3 días isn dormir con los crios con fiebre y no veo ya salida.

tengo un formulario en html - php que envia el texto de los inputs a un documento en word con PHPword.

El caso es que hay uno de los elementos que funciona como Hombre/Mujer y en función de eso, en el word sale Don perico de los palotes o Doña Maria Antoñeta, y en un parrafo posterior si es Don, debería de ponerse "por el propio interesado" y si es Doña, "por la popia interesada"

El caso es que no consigo que funcione. Si es Don, si que sale, pero si es Doña, o no funciona o se queda en blanco.

Os pongo el codigo que realiza el trabajo
<?php
header('Content-Type: text/html; charset=UTF-8');
require_once "vendor/autoload.php";
use PhpOffice\PhpWord\Style\Language;

use PhpOffice\PhpWord\TemplateProcessor;


$templateWord = new TemplateProcessor('plantilla.docx');
if ($sexo = "Don") {
      $pro = "el propio interesado";
} else {
      $pro = "la propia interesada";
}

$nombre = htmlspecialchars($_POST['nombre']);
$apellidos = htmlspecialchars($_POST['apellidos']);
$dni = htmlspecialchars($_POST['dni']);
$nacimiento = htmlspecialchars($_POST['nacimiento']);
$direccion = htmlspecialchars($_POST['direccion']);
$sexo = htmlspecialchars($_POST['sexo']);
$acc = htmlspecialchars($_POST['acc']);

// --- Asignamos valores a la plantilla
$templateWord->setValue('nombre_paciente',$nombre);
$templateWord->setValue('apellidos_paciente',$apellidos);
$templateWord->setValue('dni_paciente',$dni);
$templateWord->setValue('nacimiento_paciente',$nacimiento);
$templateWord->setValue('direccion_paciente',$direccion);
$templateWord->setValue('sexo_paciente',$sexo);
$templateWord->setValue('pro_paciente',$pro);
$templateWord->setValue('acc_paciente',$acc);

// --- Guardamos el documento
$templateWord->saveAs('InformeDaños.docx');

header("Content-Disposition: attachment; filename=InformeDaños.docx; charset=iso-8859-1");
echo file_get_contents('InformeDaños.docx');
       
?>


y el codigo que tengo en el formulario:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html><head>
<meta content="text/html; charset=UTF-8" http-equiv="content-type"><title></title>
</head>
<body>
<table class="tabla1">
<form method="post" action="template.php" margin="center">
DATOS DEL PACIENTE:<br><br>
<p>
<p>Nombre: <input name="nombre" value="Nombre"></p>
<p>Apellidos: <input name="apellidos" value="Apellidos"></p>
<p>Sexo: <select name="select">
  <option value="Don">Hombre</option>
  <option value="Dña" >Mujer</option>

</select></p>
<p>DNI: <input name="dni" value="DNI"></p>
<p>Fecha de nacimiento <input name="nacimiento" value="01/01/2000"></p>
<p>Direccion: <input name="direccion" value="Direccion"></p>
<p>Fecha accidente: <input name="acc" value="Fecha accidente"></p>
<p><input type="submit" name"enviar" value="Enviar"></p>
</form>
</table>
</body></html>


Habrá alguna cosilla más (como problema con las ñ y las tildes) que creo que ya se como se soluciona pero esto es lo que más me está costando ahora mismo.

Un saludo y muchisimas gracias!
@emuhell

Aquí estás asignando a la variable sexo "Don" no estás comparando
if ($sexo = "Don")

Necesitas un == o ====

Además estas evaluando antes de obtener la variable

Un saludo
Ante todo muchísimas gracias por responder

Aabo de ver q soy zorrismo y es la versión anterior que hice con varios cambios (hace mil años q no toco PHP y se me ha olvidado casi todo)

Revisaré lo q comentáis y a ver si sale.

Gracias!!!
2 respuestas