Jump to content

POST Request


jbw

Recommended Posts

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
Share on other sites

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
Share on other sites

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.