2010-07-15 4 views
1

Très bien, j'ai donc reçu mon formulaire pour envoyer par courrier électronique la plupart des variables de php. Cependant, mes variables textarea apparaissent en blanc et mes entrées textarea impression comme « Array »formulaires - traitement des variables de zone de texte et de case à cocher

Voici un extrait de ma forme:

<label for="ProgramAudience">Intended Audience:</label> 
       <span><input type="checkbox" name="ProgramAudience[]" value="AcademicAffairsFaculty" />Academic Affairs/Faculty</span> 
       <span><input type="checkbox" name="ProgramAudience[]" value="StudentAffairsDevelopment" />Student Affairs/Development</span> 
       <span><input type="checkbox" name="ProgramAudience[]" value="CommunityCollege" />Community College/2-Year Institutions</span> 
       <span><input type="checkbox" name="ProgramAudience[]" value="GraduateStudents" />Graduate Students</span> 
       <span><input type="checkbox" name="ProgramAudience[]" value="FourYearPublic" />Four-Year Public Institutions</span> 
       <span><input type="checkbox" name="ProgramAudience[]" value="FourYearPrivate" />Four-Year Private Institutions</span> 



<label for="ExpectedOutcome">Expected Learning Outcomes:</label> 
       <label class="small">List 1-2 expected learning outcomes below. (As a result of attending this session, participants will...)</font></label> 
        <font size="1" face="arial, helvetica, sans-serif"> (You may enter up to 400 characters.)<br> 
       <textarea name="message4" id="ExpectedOutcome" class="required" wrap="physical" rows="10" cols="35" onKeyDown="textCounter(this.form.message4,this.form.remLen,400);" onKeyUp="textCounter(this.form.message4,this.form.remLen,400);"></textarea> 

Voici la partie du fichier de traitement:

$ProgramAudience = $_POST['ProgramAudience']; 
$ExpectedOutcome = $_POST['ExpectedOutcome']; 

...

$Body = ""; 
$Body .= "ProgramAudience: "; 
$Body .= $ProgramAudience; 
$Body .= "\n"; 
$Body .= "ExpectedOutcome "; 
$Body .= $ExpectedOutcome; 

C'est ce que le résultat envoyé par courrier électronique ressemble à:

De:

Pour: [email protected]

Date: Jeu 15 Jul 2010 17:10:17 -0400

Objet: Proposition Soumission

Prénom: miles

Nom: me

Titre: Test

Institution: Test

Emailfrom: [email protected]

Téléphone: 8157531503

Adresse: HSC 023A

Ville: DeKalb

État: IL

Code postal: 60115

CoPresenter: adam

ProgramTitle:

programType: Array

ProgramDescription:

ProgramOutline:

ProgramTopic: Array

ProgramAudience: Array

ExpectedOutcome

Expérience:

AVEquipment:

Répondre

1

Vérifiez votre attribut nom sur la zone de texte - qui est celui PHP utilisera.

Les cases à cocher ne seront validées que si elles sont cochées, alors assurez-vous de vérifier quelque chose.Avec un nom avec des parenthèses, comme "ProgramAudience []", la variable $ _POST ['ProgramAudience'] sera soit nulle soit un tableau. Vous voudrez vérifier s'il s'agit d'un tableau et, si c'est le cas, parcourir le contenu pour générer votre courrier électronique.

+0

Le nom textarea était juste sur. Je les ai changés quand j'ai mis du javascript qui limiterait le nombre de caractères que l'utilisateur pourrait entrer. Est-ce que quelqu'un sait une meilleure façon de limiter l'entrée de champ textarea? – miles

+0

aucune idée sur la limitation des caractères –

1

Pour les tableaux de cases à cocher, le script de traitement nécessaire ceci:

$ProgramTitle = $_POST['ProgramTitle']; 
foreach($_POST['ProgramType'] as $value) { 
$check_msg .= "Checked: $value\n"; 
} 

et ceci:

$Body .= "ProgramTitle: "; 
$Body .= $ProgramTitle; 
$Body .= "\n"; 
$Body .= "ProgramType: "; 
$Body .= $check_msg; 
Questions connexes