下午好,
我想用这个脚本完成的是一个程序,它根据所选的感兴趣区域返回三个相关链接。在第一页上是一个表单,我使用<input type="checkbox">
并将name
属性设置为interests[]
来将用户选择存储在数组中。跳转后的代码块是表单处理脚本,如果表单验证,则回显链接。我遇到问题的地方是我的切换案例函数displaylinks();
仅在处理表单后显示interests[0]
,即使print_r
显示的内容
Array (
[0] => Web Development
[1] => Startups
[2] => Video Games
)
如果选择了多个兴趣,则仅显示阵列第一个位置的兴趣。有任何想法吗?
//Success condition:: for name with interests
if($_POST["fullname"] != "" && (isset($_POST['interests']))) {
echo '<div class="interests">';
displayLinks();//Links are only displayed when the form validates successfully
echo '<a href="/Exercise1">Return to start.</a>';
echo '</div>';
}
function displayLinks(){
$interests = $_POST['interests'];
print_r($interests);//just to see whats in the array for debugging
switch (TRUE) {
case in_array("Design", $interests):
echo "<h2>Design</h2>";
echo '<p><a href="http://dribbble.com" target="_blank">Dribbble</a><br/>';
echo '<a href="http://news.layervault.com" target="_blank">Designer News</a><br/>';
echo '<a href="http://beta.psdboard.com/" target="_blank">PSDboard</a></p>';
break;
case in_array("Web Development", $interests):
echo "<h2>Web Development</h2>";
echo '<p><a href="http://jqapi.com/" target="_blank">jQuery API</a><br/>';
echo '<a href="https://developers.google.com/speed/libraries/" target="_blank">Google API Library</a><br/>';
echo '<a href="https://developer.mozilla.org/en-US/" target="_blank">Mozilla Developer Network</a></p>';
break;
case in_array("Startups", $interests):
echo "<h2>Startups</h2>";
echo '<p><a href="http://news.ycombinator.com" target="_blank">Hacker News</a><br/>';
echo '<a href="http://andrewchen.co/" target="_blank">@andrewchen</a><br/>';
echo '<a href="http://techcrunch.com/" target="_blank">Tech Crunch</a></p>';
break;
case in_array("Video Games", $interests):
echo "<h2>Video Games</h2>";
echo '<p><a href="http://twitch.tv" target="_blank">TwitchTV</a><br/>';
echo '<a href="http://www.giantbomb.com/" target="_blank">Giant Bomb</a><br/>';
echo '<a href="http://tap-repeatedly.com" target="_blank">Tap Repeatedly</a></p>';
break;
case in_array("Online Magazines", $interests):
echo "<h2>Online Magazines</h2>";
echo '<p><a href="https://medium.com/" target="_blank">Medium</a><br/>';
echo '<a href="http://svbtle.com" target="_blank">Svbtle</a><br/>';
echo '<a href="http://explorecreaterepeat.com/" target="_blank">Explore Create Repeat</a></p>';
}
}//End display links function
编辑:回答第一个答案
这是一项家庭作业,而且该标题为使用开关盒提供了更多的分数。
答案 0 :(得分:3)
您使用的是错误的工具。 switch
语句旨在仅选择一个条件。你想要的是一整串单独的if
块。
if (in_array("Design", $interests)) {
echo "<h2>Design</h2>";
echo '<p><a href="http://dribbble.com" target="_blank">Dribbble</a><br/>';
echo '<a href="http://news.layervault.com" target="_blank">Designer News</a><br/>';
echo '<a href="http://beta.psdboard.com/" target="_blank">PSDboard</a></p>';
}
if (in_array("Web Development", $interests)) {
echo "<h2>Web Development</h2>";
echo '<p><a href="http://jqapi.com/" target="_blank">jQuery API</a><br/>';
echo '<a href="https://developers.google.com/speed/libraries/" target="_blank">Google API Library</a><br/>';
echo '<a href="https://developer.mozilla.org/en-US/" target="_blank">Mozilla Developer Network</a></p>';
}
// etc...