2014-09-04 1 views
0

Je construis un outil simple qui va assembler une chaîne basée sur l'entrée de formulaire HTML.Certaines variables de la forme HTML ne reçoivent pas d'écho

Toutefois, deux variables ne sont pas tirées dans la chaîne comme prévu.

Voici le formulaire HTML:

<form action="stringmaker.php" method="post"> 
<label for="subline">Subject line:</label> 
<input type="text" id="subline" name="subline" size="30" /><br /><br /> 

<label for="emailtype">Email Type</label> 
<select name="emailtype"> 
<option value="advocacy" selected>Advocacy</option> 
<option value="fundraising">Fundraising</option> 
<option value="newsletter">Newsletter</option> 
<option value="event">Event</option> 
<option value="cultivation">Cultivation</option> 
</select><br /><br /> 

<label for="campaign">Campaign</label> 
<select name="campaign"> 
<option value="campaign1" selected>Campaign 1</option> 
<option value="campaign2" selected>Campaign 2</option> 
<option value="campaign3" selected>Campaign 3</option> 
<option value="campaign4" selected>Campaign 3</option> 
</select> 

<h3>Audience Information</h3> 
<label for="audiencetype">Audience Type</label> 
<select name="audiencetype"> 
<option value="noaudiencetype" selected>None</option> 
<option value="interestgroup">Interest Group</option> 
<option value="donors">Donors</option> 
<option value="actiontakers">Action-Takers</option> 
</select><br /><br /> 

<label for="geo">Audience Geography</label> 
<select name="geo"> 
<option value="national" selected>National</option> 
<option value="state">State</option> 
<option value="district">District</option> 
<option value="city">City</option> 
</select><br /><br /> 

<label for="statename">State</label> 
<select name="statename"> 
<option value="ak" selected>Alaska</option> 
<option value="al">Alabama</option> 
<option value="az">Arizona</option> 
<option value="dc">Washington, D.C.</option> 
</select><br /><br /> 

<input type="submit" value="Go" name="submit" /> 

Et voici le PHP:

<?php 
$subline = $_POST['subline']; 
$emailtype = $_POST['emailtype']; 
$campaign = $_POST['campaign']; 
$audiencetype = $_POST['audiencetype']; 
$geo = $_POST['geo']; 
$statename = $_POST['statename']; 

echo "<p>Here's your string!<br>"; 
echo $subline,"|",$emailtype,"|",$campaign,"|",$audiencetype,"|",$geo,"|",$statename; 
?> 

La sortie manque le premier ($subline) et cinquième ($geo) les variables, et je peux » t comprendre ce qui est différent avec ceux-ci.

Merci pour votre aide.

+2

'print_r ($ _ POST)........' Nous montrent les résultats –

+1

Essayez'echo sous-ligne de $ "|" $ EMAILTYPE "|" $ campagne "|" $ audiencetype "|" $ geo. "|". $ statename; 'les points sont à concaténer, pas les virgules. De plus, le code de fermeture de votre question ne contient pas la balise fermante ''. –

+1

Je pense que @ Fred-ii- est correct – kimbarcelona

Répondre

1

Edit:

En l'état actuel, les points et les virgules sont acceptables, mon erreur.
Votre forme est manquante </form>, le moins de votre code affiché à l'origine.

Tout échoué correctement dans mon test.

La seule chose que je peux trouver pour expliquer pourquoi $subline est vide, c'est qu'il n'a pas été rempli. Tout le reste vérifie.

J'ai aussi remarqué que vous avez aussi tous ces que selected

<option value="campaign1" selected>Campaign 1</option> 
<option value="campaign2" selected>Campaign 2</option> 
<option value="campaign3" selected>Campaign 3</option> 
<option value="campaign4" selected>Campaign 3</option> 

Sidenote: Vous avez 2x Campaign 3, mais cela ne devrait rien affecter.

Il ne devrait y en avoir qu'un seul.

<option value="campaign1" selected>Campaign 1</option> 
<option value="campaign2">Campaign 2</option> 
<option value="campaign3">Campaign 3</option> 
<option value="campaign4">Campaign 3</option> 

(fixe à être Campagne 4)

<option value="campaign1" selected>Campaign 1</option> 
<option value="campaign2">Campaign 2</option> 
<option value="campaign3">Campaign 3</option> 
<option value="campaign4">Campaign 4</option> 

Un de mes résultats des tests:

 
Here's your string! 
test|fundraising|campaign3|noaudiencetype|district|ak 

réponse originale:

Utilisez des points/péri ods à concaténer, pas des virgules.

echo $subline."|".$emailtype."|".$campaign."|".$audiencetype."|".$geo."|".$statename; 

Plus, le code de votre question manque une balise de fermeture </form>.

+2

Lisez la [documentation] (http://php.net/manual/fr/function.echo.php). La syntaxe est 'echo $ arg1, $ arg2, $ arg3, ...' – Barmar

+1

@Barmar Oui, mon erreur. J'ai testé avec des virgules et des points et cela a fonctionné. Je pense que c'est seulement la balise '' manquante. –

+1

Pourquoi cela omettrait-il uniquement 'subline' et' geo'? – Barmar

Questions connexes