2014-09-04 32 views
0

我正在構建一個簡單的工具,它將根據HTML表單輸入組裝一個字符串。來自HTML表單的某些變量沒有得到迴應

但是,兩個變量沒有按預期拉入字符串。

下面是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" /> 

這裏是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; 
?> 

輸出缺失頭($subline)和第五($geo)變量,我可以」弄清楚與那些有什麼不同。

感謝您的幫助。

+2

'print_r($ _ POST);'告訴我們結果 – 2014-09-04 02:45:25

+1

嘗試'echo $ subline。「|」。$ emailtype。「|」。$ campaign。「|」。$ audiencetype。「|」。$ geo。「|」。$ statename;'點是連接的,而不是逗號。另外,您的問題的代碼缺少結尾''標記。 – 2014-09-04 02:49:40

+1

我認爲@ Fred-ii-是正確的 – kimbarcelona 2014-09-04 02:50:09

回答

1

編輯:

既然這樣,既點和逗號是可以接受的,我的錯誤。
您的表單是/缺少</form>標記,至少來自您最初發布的代碼。

在我的測試中,一切都正確無誤。

我可以拿出來解釋爲什麼$subline是空的唯一的事情是它沒有被填滿。其他一切都檢查出來。

我也注意到,你也有所有這些爲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> 

旁註:你有2個Campaign 3,但不會有任何影響。

應該只有一個。

<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> 

(固定它是運動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> 

我的一個測試結果:

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

原來的答案:

使用點/圍連接的ods,而不是逗號。

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

此外,您的問題的代碼丟失關閉 </form>標記。

+2

閱讀[documentation](http://php.net/manual/en/function.echo.php)。語法是'echo $ arg1,$ arg2,$ arg3,...' – Barmar 2014-09-04 02:56:48

+1

@Barmar是的,我的錯誤。我用逗號和點測試了它,它工作。我認爲這只是缺失的''標籤。 – 2014-09-04 02:57:42

+1

爲什麼只會忽略'subline'和'geo'? – Barmar 2014-09-04 02:59:19