jbw Posted March 27, 2014 Share Posted March 27, 2014 Hi all,With the working code below I;m trying to setup a results section that would output a soccer teams results eg.Everton have won 12, drawn 4, and lost 5 games to date.The team position option works fine but I;m not sure how to integrate the additional function within the code for the results section? Thanks for the help. Regards.<html><head><style>.red {color: red}</style><title>Table</title></head><body><?php if ($_SERVER["REQUEST_METHOD"] == "POST" ){ $tablesPage = "http://www.bbc.com/sport/football/tables";$resultsPage = "http://www.bbc.com/sport/football/results"; // I need this to output results data as in the tables option if(!empty($_POST["team"])){$teamData= getTeamData($_POST["team"] , $tablesPage);if(!empty($_POST["data"]) && $_POST["data"] == "position"){echo getPosition($teamData);}}}function getPosition($teamData){return "Team ". $teamData["team"] ." are currently number " . $teamData["position"] . " in the league ";}function getTeamData($team, $tablesPage){$html = new DOMDocument();@$html->loadHtmlFile($tablesPage);@$xpath = new DOMXPath($html); /$items = $xpath->query('//td/a[text()=' . $team . ']/../..');$values[] = array();foreach($items as $node){foreach($node->childNodes as $child) {if($child->nodeType == 1) array_push($values, $child->nodeValue);}}$values[2] = substr($values[2], -1);$values = array_slice( $values, 2, count($values)-4);$keys = array("position", "team", "played", "won", "drew", "lost", "for", "against", "difference", "points");return array_combine($keys, $values);}?><br>Select a team and a data item about that team<form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>"><select name="team"><option value=""></option><option value="Everton">Everton</option><option value="Chelsea">Chelsea</option><option value="Southampton">Southampton</option><option value="Liverpool">Liverpool</option><option value="Arsenal">Arsenal</option></select><select name="data"><option value="position">position</option><option value="results">results</option><select><input type="submit" value="Get Data"></input></select></form></body></html> Test.php Quote Link to comment https://forums.phpfreaks.com/topic/287327-post-request/ Share on other sites More sharing options...
Ch0cu3r Posted March 27, 2014 Share Posted March 27, 2014 Create a function similar to your getPosition function , pass it the teamData array but only echo out the win, lost and drew items from that array function getResults($teamData){ return "Team ". $teamData["team"] ." has Won ". $teamData["won"] ." games, lost " . $teamData["lost"] . " games and drew " . $teamData['drew'] . " games"; } You'll use the following switch case statement to call the necessary function based on what user selected from form (Position or Results) switch($_POST['data']) { case 'position': echo getPosition($teamData); break; case 'results': echo getResults($teamData); break; } Quote Link to comment https://forums.phpfreaks.com/topic/287327-post-request/#findComment-1474100 Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.