[Typo3] Récupérer les valeurs d'un formulaire
Bonjour,
je désespère un peu avec mon extension Typo3 donc je viens vous demander de l'aide ! :aie:
Tout d'abord, mon extension permet de remplir un formulaire, ensuite on lance une prévisualisation des informations, ensuite on envoie un mail.
J'ai un template .tmpl divisé en plusieurs parties comme ceci : ###PART_1###.
Dans chaque partie, j'ai un champ hidden tx_nomextension_pi1[ordre].
Dans ma classe, je récupère ce [ordre] et suivant sa valeur (switch : case :), j'exécute telle ou telle fonction.
Quand j'affiche le formulaire pour la première fois, tout est vide (normal).
On saisit donc nos informations.
Je vais cliquer sur un bouton submit, et entrer dans une fonction n°2 suivant [ordre].
Sauf que lorsque j'arrive dans fonction n°2, je n'ai plus aucune valeur entrée.
J'ai tenté de les récupérer avec piVars, mais ça me donne que des valeurs vides.
J'ai tenté de remplacer les markers (ex : ###NOM_PERSONNE###) et ensuite de récupérer cette valeur mais rien n'y fait. Je n'y arrive pas.
Mon code (enfin en partie) :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
|
public function main($content,$conf) {
$this->conf = $conf;
$this->pi_setPiVarDefaults();
// Load template
$templateFile = 'EXT:nomextension/pi1/template.tmpl';
$this->template = $this->cObj->fileResource($templateFile);
switch ($this->piVars['cmd']) {
// Form de base, on demande l'affichage du preview
case 'ask_preview':
$content = $this->getPreviewScreen();
break;
// Form de preview, on enregistre dans la bdd et on envoie le mail
case 'preview': $content = $this->sendMailScreen();
break;
}
return $content;
}
function getPreviewScreen() {
$cardmessage = $this->piVars['message'];
$nom = $this->piVars['to_name'];
$mail = $this->piVars['to_email'];
print_r($this->piVars);
$content = $this->cObj->getSubpart($this->template, '###PART_2###');
$content = $this->cObj->substituteMarkerArray($content, array(
'###FORM_URL###' => $this->cObj->currentPageUrl(),
'###CARD_MESSAGE###' => $cardmessage,
'###TO_NAME###' => $nom,
'###TO_EMAIL###' => $mail,
));
return $content;
} |
Et dans mon template :
Code:
1 2 3 4 5 6 7 8 9 10 11
|
<form method="POST" action="###FORM_URL###">
<table>
<tr>
<td colspan="2" align="right"><input type="submit" name="tx_nomextension_pi1[preview]" id="preview" value="Envoyer" /></td></td>
<input type="hidden" name="tx_nomextension_pi1[to_name]" value="###TO_NAME###" />
<input type="hidden" name="tx_nomextension_pi1[to_email]" value="###TO_EMAIL###" />
<input type="hidden" name="tx_cg88cartes_pi1[cmd]" value="preview" />
</tr>
</table>
</form> |
Pouvez-vous m'aider ? :mrgreen: