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 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; } Link to comment https://forums.phpfreaks.com/topic/287327-post-request/#findComment-1474100 Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.