0

下午好,

我试图用这个脚本完成的是一个程序,它根据选定的兴趣区域返回三个相关链接。在第一页上是一个表单,我使用设置为<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

编辑:响应第一个答案

这是用于家庭作业的,并且该规则为使用开关盒提供了更多积分。

4

1 回答 1

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...
于 2013-07-11T04:13:39.777 回答