PHP错误,Foreach()和Html POST
“我有两页。在第一个页面上有一个选择框,其中包含许多国家的所有名称,当用户单击一个国家并单击发送时,它会转到相关标志所在的第二个页面。然而,当我看不出有什么问题时,它就不起作用了。我在这上面花了很多时间,这让我很恼火,所以如果有人能帮我,那就好了 第1页:PHP错误,Foreach()和Html POST,php,html,foreach,Php,Html,Foreach,“我有两页。在第一个页面上有一个选择框,其中包含许多国家的所有名称,当用户单击一个国家并单击发送时,它会转到相关标志所在的第二个页面。然而,当我看不出有什么问题时,它就不起作用了。我在这上面花了很多时间,这让我很恼火,所以如果有人能帮我,那就好了 第1页: <?php echo "<form action='test2.php' method='post'> "; echo '<br>Actual Region: <img src="flags/png/' .
<?php
echo "<form action='test2.php' method='post'>
";
echo '<br>Actual Region: <img src="flags/png/' . $country . '.png">';
$countries = array(
' af ' =>' Afghanistan ' ,
' al ' =>' Albania ' ,
' dz ' =>' Algeria ' ,
' as ' =>' American Samoa ' ,
' ad ' =>' Andorra ' ,
' ao ' =>' Angola ' ,
' ai ' =>' Anguilla ' ,
' aq ' =>' Antarctica ' ,
' ag ' =>' Antigua and Barbuda ' ,
' ar ' =>' Argentina ' ,
' am ' =>' Armenia ' ,
' aw ' =>' Aruba ' ,
' au ' =>' Australia ' ,
' at ' =>' Austria ' ,
' az ' =>' Azerbaijan ' ,
' bs ' =>' Bahamas ' ,
' bh ' =>' Bahrain ' ,
' bd ' =>' Bangladesh ' ,
' bb ' =>' Barbados ' ,
' by ' =>' Belarus ' ,
' be ' =>' Belgium ' ,
' bz ' =>' Belize ' ,
' bj ' =>' Benin ' ,
' bm ' =>' Bermuda ' ,
' bt ' =>' Bhutan ' ,
' bo ' =>' Bolivia ' ,
' ba ' =>' Bosnia-Herzegovina ' ,
' bw ' =>' Botswana ' ,
' bv ' =>' Bouvet Island ' ,
' br ' =>' Brazil ' ,
' io ' =>' British Indian Ocean Territory ' ,
' bn ' =>' Brunei Darussalam ' ,
' bg ' =>' Bulgaria ' ,
' bf ' =>' Burkina Faso ' ,
' bi ' =>' Burundi ' ,
' kh ' =>' Cambodia ' ,
' cm ' =>' Cameroon ' ,
' ca ' =>' Canada ' ,
' cv ' =>' Cape Verde ' ,
' ky ' =>' Cayman Islands ' ,
' cf ' =>' Central African Republic ' ,
' td ' =>' Chad ' ,
' cl ' =>' Chile ' ,
' cn ' =>' China ' ,
' cx ' =>' Christmas Island ' ,
' cc ' =>' Cocos (Keeling) Islands ' ,
' co ' =>' Colombia ' ,
' km ' =>' Comoros ' ,
' cg ' =>' Congo ' ,
' cd ' =>' Congo, Dem. Republic ' ,
' ck ' =>' Cook Islands ' ,
' cr ' =>' Costa Rica ' ,
' hr ' =>' Croatia ' ,
' cu ' =>' Cuba ' ,
' cy ' =>' Cyprus ' ,
' cz ' =>' Czech Rep. ' ,
' dk ' =>' Denmark ' ,
' dj ' =>' Djibouti ' ,
' dm ' =>' Dominica ' ,
' do ' =>' Dominican Republic ' ,
' ec ' =>' Ecuador ' ,
' eg ' =>' Egypt ' ,
' sv ' =>' El Salvador ' ,
' gq ' =>' Equatorial Guinea ' ,
' er ' =>' Eritrea ' ,
' ee ' =>' Estonia ' ,
' et ' =>' Ethiopia ' ,
' eu.int ' =>' European Union ' ,
' fk ' =>' Falkland Islands ' ,
' fo ' =>' Faroe Islands ' ,
' fj ' =>' Fiji ' ,
' fi ' =>' Finland ' ,
' fr ' =>' France ' ,
' gf ' =>' French Guiana ' ,
' tf ' =>' French Southern Territories ' ,
' ga ' =>' Gabon ' ,
' gm ' =>' Gambia ' ,
' ge ' =>' Georgia ' ,
' de ' =>' Germany ' ,
' gh ' =>' Ghana ' ,
' gi ' =>' Gibraltar ' ,
' gb ' =>' Great Britain ' ,
' gr ' =>' Greece ' ,
' gl ' =>' Greenland ' ,
' gd ' =>' Grenada ' ,
' gp ' =>' Guadeloupe (French) ' ,
' gu ' =>' Guam (USA) ' ,
' gt ' =>' Guatemala ' ,
' gg ' =>' Guernsey ' ,
' gn ' =>' Guinea ' ,
' gw ' =>' Guinea Bissau ' ,
' gy ' =>' Guyana ' ,
' ht ' =>' Haiti ' ,
' hm ' =>' Heard Island and McDonald Islands ' ,
' hn ' =>' Honduras ' ,
' hk ' =>' Hong Kong ' ,
' hu ' =>' Hungary ' ,
' is ' =>' Iceland ' ,
' in ' =>' India ' ,
' id ' =>' Indonesia ' ,
' ir ' =>' Iran ' ,
' iq ' =>' Iraq ' ,
' ie ' =>' Ireland ' ,
' im ' =>' Isle of Man ' ,
' il ' =>' Israel ' ,
' it ' =>' Italy ' ,
' ci ' =>' Ivory Coast ' ,
' jm ' =>' Jamaica ' ,
' jp ' =>' Japan ' ,
' je ' =>' Jersey ' ,
' jo ' =>' Jordan ' ,
' kz ' =>' Kazakhstan ' ,
' ke ' =>' Kenya ' ,
' ki ' =>' Kiribati ' ,
' kp ' =>' Korea-North ' ,
' kr ' =>' Korea-South ' ,
' kw ' =>' Kuwait ' ,
' kg ' =>' Kyrgyzstan ' ,
' la ' =>' Laos ' ,
' lv ' =>' Latvia ' ,
' lb ' =>' Lebanon ' ,
' ls ' =>' Lesotho ' ,
' lr ' =>' Liberia ' ,
' ly ' =>' Libya ' ,
' li ' =>' Liechtenstein ' ,
' lt ' =>' Lithuania ' ,
' lu ' =>' Luxembourg ' ,
' mo ' =>' Macau ' ,
' mk ' =>' Macedonia ' ,
' mg ' =>' Madagascar ' ,
' mw ' =>' Malawi ' ,
' my ' =>' Malaysia ' ,
' mv ' =>' Maldives ' ,
' ml ' =>' Mali ' ,
' mt ' =>' Malta ' ,
' mh ' =>' Marshall Islands ' ,
' mq ' =>' Martinique (French) ' ,
' mr ' =>' Mauritania ' ,
' mu ' =>' Mauritius ' ,
' yt ' =>' Mayotte ' ,
' mx ' =>' Mexico ' ,
' fm ' =>' Micronesia ' ,
' md ' =>' Moldova ' ,
' mc ' =>' Monaco ' ,
' mn ' =>' Mongolia ' ,
' me ' =>' Montenegro ' ,
' ms ' =>' Montserrat ' ,
' ma ' =>' Morocco ' ,
' mz ' =>' Mozambique ' ,
' mm ' =>' Myanmar ' ,
' na ' =>' Namibia ' ,
' nr ' =>' Nauru ' ,
' np ' =>' Nepal ' ,
' nl ' =>' Netherlands ' ,
' an ' =>' Netherlands Antilles ' ,
' nc ' =>' New Caledonia (French) ' ,
' nz ' =>' New Zealand ' ,
' ni ' =>' Nicaragua ' ,
' ne ' =>' Niger ' ,
' ng ' =>' Nigeria ' ,
' nu ' =>' Niue ' ,
' nf ' =>' Norfolk Island ' ,
' mp ' =>' Northern Mariana Islands ' ,
' no ' =>' Norway ' ,
' om ' =>' Oman ' ,
' pk ' =>' Pakistan ' ,
' pw ' =>' Palau ' ,
' pa ' =>' Panama ' ,
' pg ' =>' Papua New Guinea ' ,
' py ' =>' Paraguay ' ,
' pe ' =>' Peru ' ,
' ph ' =>' Philippines ' ,
' pn ' =>' Pitcairn Island ' ,
' pl ' =>' Poland ' ,
' pf ' =>' Polynesia (French) ' ,
' pt ' =>' Portugal ' ,
' pr ' =>' Puerto Rico ' ,
' qa ' =>' Qatar ' ,
' re ' =>' Reunion (French) ' ,
' ro ' =>' Romania ' ,
' ru ' =>' Russia ' ,
' rw ' =>' Rwanda ' ,
' sh ' =>' Saint Helena ' ,
' kn ' =>' Saint Kitts & Nevis Anguilla ' ,
' lc ' =>' Saint Lucia ' ,
' pm ' =>' Saint Pierre and Miquelon ' ,
' vc ' =>' Saint Vincent & Grenadines ' ,
' ws ' =>' Samoa ' ,
' sm ' =>' San Marino ' ,
' st ' =>' Sao Tome and Principe ' ,
' sa ' =>' Saudi Arabia ' ,
' sn ' =>' Senegal ' ,
' rs ' =>' Serbia ' ,
' sc ' =>' Seychelles ' ,
' sl ' =>' Sierra Leone ' ,
' sg ' =>' Singapore ' ,
' sk ' =>' Slovakia ' ,
' si ' =>' Slovenia ' ,
' sb ' =>' Solomon Islands ' ,
' so ' =>' Somalia ' ,
' za ' =>' South Africa ' ,
' gs ' =>' South Georgia & South Sandwich Islands ' ,
' es ' =>' Spain ' ,
' lk ' =>' Sri Lanka ' ,
' sd ' =>' Sudan ' ,
' sr ' =>' Suriname ' ,
' sj ' =>' Svalbard and Jan Mayen Islands ' ,
' sz ' =>' Swaziland ' ,
' se ' =>' Sweden ' ,
' ch ' =>' Switzerland ' ,
' sy ' =>' Syria ' ,
' tw ' =>' Taiwan ' ,
' tj ' =>' Tajikistan ' ,
' tz ' =>' Tanzania ' ,
' th ' =>' Thailand ' ,
' tg ' =>' Togo ' ,
' tk ' =>' Tokelau ' ,
' to ' =>' Tonga ' ,
' tt ' =>' Trinidad and Tobago ' ,
' tn ' =>' Tunisia ' ,
' tr ' =>' Turkey ' ,
' tm ' =>' Turkmenistan ' ,
' tc ' =>' Turks and Caicos Islands ' ,
' tv ' =>' Tuvalu ' ,
' uk ' =>' U.K. ' ,
' ug ' =>' Uganda ' ,
' ua ' =>' Ukraine ' ,
' ae ' =>' United Arab Emirates ' ,
' uy ' =>' Uruguay ' ,
' us ' =>' USA ' ,
' um ' =>' USA Minor Outlying Islands ' ,
' uz ' =>' Uzbekistan ' ,
' vu ' =>' Vanuatu ' ,
' va ' =>' Vatican ' ,
' ve ' =>' Venezuela ' ,
' vn ' =>' Vietnam ' ,
' vg ' =>' Virgin Islands (British) ' ,
' vi ' =>' Virgin Islands (USA) ' ,
' wf ' =>' Wallis and Futuna Islands ' ,
' eh ' =>' Western Sahara ' ,
' ye ' =>' Yemen ' ,
' zm ' =>' Zambia ' ,
' zw ' =>' Zimbabwe ' );
echo "<br>Chosen Region: <select>";
foreach ($countries as $key => $value) {
echo "<option name=" . $key . ">" . $value . "</option>";
}
echo "</select><input type='submit' value='send' name='send' />
</form>";
?>
您的代码缺少开头的
标记。
您必须使用其name属性作为键来访问$\u POST
数组以检索所选值
您的html应该如下所示:
<select name="country">
<?php
echo "<br>Chosen Region: <select>";
foreach ($countries as $key => $value) {
echo "<option value=" . $key . ">" . $value . "</option>";
}
</select>
?>
$country = $_POST['country'];
echo "<img src='flags/png/' . $country . '.png'>";
以及php文件:
<?php
$country = $_POST['country'];
?>
您必须将名称附加到select标记上,而不是选项上,以便在第二个php中检索它:
echo "<br>Chosen Region: <select name='country'>";
foreach ($countries as $key => $value) {
echo "<option value=" . $key . ">" . $value . "</option>";
}
echo "</select><input type='submit' value='send' name='send' />
</form>";
echo“
所选区域:”;
foreach($key=>$value的国家){
回显“$value.”;
}
回声“
";
第二页
$country = $_POST['country'];
echo "<img src='flags/png/".$country.".png'>";
$country=$\u POST['country'];
回声“;
您的
缺少名称属性:
<select name='country'>
..options..
</select>
…选项。。
您的选择框缺少名称属性。然后在第二页做$_POST[“countries”]。此外,您的选项应该具有值属性,而不是名称。我看到的问题如下:
- 您的
没有名字,这可能是第二页的一个问题,无法轻松识别您通过它发送的内容
- 在第二页中,我看不到从哪里获得获取标志的
$key
变量
建议:
- 在中添加一个名称,这样您的post变量就可以像这样使用
$\u post['nameOfSelect']
,它将包含所选国家的ID。同时向
标记添加“value”属性
- 上述建议将解决
$key
变量的问题,只需执行与当前第二页$country=$\u POST['nameOfSelect']
中完全相同的操作即可解决问题
希望我说得够清楚,这个建议能帮助你:)
更新:添加到答案中,特别是指您的更新,是的,添加“值”属性将解决您的问题:
echo "<br>Chosen Region: <select name='country'>";
foreach ($countries as $key => $value) {
echo "<option value=" . $key . ">" . $value . "</option>";
}
你能详细谈谈“它不起作用”吗?这些真的是你网页的全部内容吗?您希望在第二页中将$key
设置为什么?您的标题似乎有误导性。。。您是否真的收到了与foreach()调用相关的错误消息?到底是什么不起作用?为什么人们坚持认为“它不起作用”是可以接受的错误报告?FFS@RyanMurphy所以基本上如果有人选择阿富汗,图像会是flags/png/af.png
?你的$countries
数组中有键值的空格是怎么回事?这只是一个输入错误。将手动将其取出或修剪()。你的位置在哪里there@RyanMurphy那么我的答案应该有效。你得到的错误是什么?修复了第2页上的一个小回音错误,它给出了完整的国家名称.png而不是国家代码.png
$country = $_POST['country'];
echo "<img src='flags/png/' . $country . '.png'>";