2009-09-17 9 views
4

Dans le modèle de contact nous voulons avoir une liste déroulante avec la liste des bureaux (Tous les articles de bureaux sont des endroits sous le même nœud parent, donc obtenir la liste devrait être assez facile). J'ai besoin d'un moyen d'ajouter l'adresse e-mail du bureau (variable Template de l'article Office) à l'e-mail généré par le formulaire électronique de Modx. Je ne souhaite pas que l'adresse e-mail soit visible dans le formulaire de contact, mais un extrait récupérant l'adresse e-mail de la variable Modèle de l'article.Modx: Comment créer un formulaire de contact avec une liste déroulante de bureaux pour cc l'email?

Je veux également un lien de chaque article de bureaux au formulaire de contact avec le bureau présélectionné dans la liste déroulante.

Comment dois-je mettre cela en œuvre?

Répondre

3

Ok, pour résoudre ce problème, j'ai supprimé le champ "to" dans l'appel de fragment à eform, et j'ai modifié l'extrait lui-même afin d'afficher une fonction pour obtenir le champ "to" de l'email. Cette fonction prend la variable post "office" (l'id de l'article de bureau) et utilise l'API modx pour obtenir la variable de template contenant l'adresse email de cet article. Puis je renvoie cette adresse e-mail à partir de la fonction et la place dans le champ e-mail à. En ajoutant un lien régulier à partir de chaque article d'emplacement avec

...?office=[~id~] 

pointant vers l'article de nous contacter. En utilisant

$_GET["office"] 

prédéfinir le menu déroulant

2

Vous devriez vraiment regarder dans eForm. a une telle action où vous pouvez mettre & cc = [email protected]

extrait appel:

[!eForm? &formid=`feedbackForm` &to=`[email protected],[email protected]` &mailselector=`department` &tpl=`eFeedbackForm` &report=`eFeedbackReport` &gotoid=`46` &vericode=`1`!] 

la forme serait mis en place sous un morceau eFeedbackForm et votre sélection de menu déroulant devrait ressembler à:

<p><label accesskey="s">Send To</label><br /> 
<select name="department" style="width: 232px"> 
      <option value="1">Mail1</option> 
      <option value="2">Mail2</option> 
    </select></p> 
Questions connexes