Witam ma nastepujący problem napisalem prosty system glosowania w ktorym dane sa w pliku XML, w pliku index.php znajduje się reprezentacja systemu do glosowania z przyciskiem glosuj oraz plik results.php w ktroym sa wyniki glosowania i jest generowany wykres. Chodzi mi o to zeby na jednej stronie ładował mi sie i uaktulanial wykres po wcisnieciu przycisku glosuj oraz zliczal glosy i dawal procent danego wyboru.
Kod index.php
<?php
if(isset($_POST['vote']))
{
if(isset($_COOKIE["voted"]))
{
$message = 'Już głosowałeś. Można głosować raz na dobę!';
}
else
{
$message = 'Twój głos został zapisany';
$dom = new DOMDocument();
$dom->load('browsers.xml');
$xpath = new DOMXPath($dom);
$units = $xpath->query('//browser');
foreach ($units as $unit)
{
$value = $unit->getAttribute('value');
if($value == $_POST['browser'])
{
$votes = $unit->getAttribute('votes');
$unit->setAttribute('votes', ++$votes);
setcookie("voted", true);
break;
}
}
$dom->save('browsers.xml');
}
}
else{
$message = '';
}
?>
<html>
<head>
<title></title>
<style type="text/css">
body{font-family:"Trebuchet MS",verdana; width:350px;}
ul{list-style:none;}
li{height:25px;}
span{background-color:red; color:#fff; float:left;}
</style>
<script type="text/javascript" src="JS/jquery.js"></script>
<script type="text/javascript">
// wersja 1
// $(document).ready(function()
// {
// $('#loadFooter').click(function()
// {
// $('#footer').load('results.php');
// });
// });
// wersja 2
function loadPage(file){
$('#content').html("<div></div>");
$('#content').load(file);
return false;
}
</script>
</head>
<body>
<form method="post">
<fieldset>
<legend>Wybierz ulubioną przeglądarkę</legend>
<ul>
<?php
$dom = new DOMDocument();
$dom->load('browsers.xml');
$xpath = new DOMXPath($dom);
$browsers = $xpath->query('//browser');
foreach ($browsers as $browser)
{
if(isset($_POST['browser']))
{
$checked = $_POST['browser'] == $browser->getAttribute('value')? 'checked': '';
}
else{
$checked = false;
}
echo '<li><input type="radio" '.$checked.' name="browser" value="'.$browser->getAttribute('value').'">'.$browser->getAttribute('name').'</li>';
}
?>
<li style="color:red;"><?php echo $message; ?></li>
<!-- <li><input type="submit" name="vote" value="Głosuj" /></li>-->
</ul>
</fieldset>
</form>
<!--wersja1-->
<!-- <div id="footer">
<a href="#" id="loadFooter"><input type="submit" name="vote" value="Głosuj" /></a>
</div>-->
<!--wersja2-->
<a href="#" onClick="return loadPage('results.php');"><input type="submit" name="vote" value="Głosuj" /></a>
</body>
</html>
Kod pliku XML .browsers.xml
<?xml version="1.0" encoding="UTF-8"?>
<browsers>
<browser name="Firefox" value="FF" votes="1"/>
<browser name="Google Chrome" value="GC" votes="1"/>
<browser name="Microsoft Edge" value="ME" votes="0"/>
<browser name="Opera" value="OP" votes="2"/>
</browsers>
kod pliku results.php
<fieldset>
<legend>Wyniki głosowania</legend>
<?php
$dom = new DOMDocument();
$dom->load('browsers.xml');
$xpath = new DOMXPath($dom);
$browsers = $xpath->query('//browser');
echo '<ul>';
foreach ($browsers as $browser)
{
$name = $browser->getAttribute('name');
$votes = $browser->getAttribute('votes');
echo '<li>'.$name.' - '.$votes. ' votes</li>';
echo '<li><span style="width:'.$votes.'px;"> </span></li>';
}
echo '</ul>';
?>
</fieldset>
jak sprawić był załadowany na stronie index.php i sie zmienial dynamicznie bez przeladowania strony ?
z góry dziekuje za pomoc