Buona sera a tutti...
sto cercando di realizzare uno scritp per sondaggi multipli senza l'uso di un DB ma mi sono un filo arenato!
La pagina index.html è la seguente:
codice:
<html>
<head>
<script type="text/javascript" src="prototype.js"></script>
<script type="text/javascript">
function vota(formElement) {
var divId = formElement.parentNode.id;
var formid = formElement.id;
$(formid).request(
{
onSuccess: function(transport) { modificaInnerHtml(divId, transport.responseText); }
}
);
}
function modificaInnerHtml(divId, newText) {
$(divId).update(newText);
}
</script>
<style>
html {
font-family: Verdana,sans-serif;
font-size: 10pt;
}
.boxSondaggi {
background-color: #dadada;
margin-left: auto;
margin-right: auto;
width: 400px;
height: 150px;
border: 1px solid red;
padding: 1em;
margin-bottom: 1em;
}
.titoloSondaggio {
color: #ff0000;
font-weight: bold;
font-size: 12pt;
}
.domandaSondaggio {
font-style: italic;
}
</style>
</head>
<body>
<?
$filename = "sondaggi.txt";
$file = fopen($filename, 'r');
$numeroSondaggi = 0;
if ($file) {
while (!feof($file)) {
$line = fgets($file);
$firstChar = substr($line, 0, 1);
switch ($firstChar) {
case "#":
if ($numeroSondaggi > 0) {
echo '
<input type="button" value="vota" onclick="javascript:vota(this.parentNode)">';
echo '</form>';
echo '</div>';
}
$numeroSondaggi++;
echo '<div id="divSondaggio'.$numeroSondaggi.'" class="boxSondaggi">';
echo '<span class="titoloSondaggio">'.substr($line, 1).'</span>
';
break;
case "_":
echo '<span class="domandaSondaggio"></span>
';
echo '<form id="formSondaggio'.$numeroSondaggi.'" action="vota.php" method="post">';
echo '<input type="hidden" name="Domanda" value="'.$numeroSondaggi.'">';
break;
case ":":
echo '<input type="radio" name="scelta" value="'.substr($line, 1).'">'.substr($line, 2).'
';
break;
}
}
fclose($file);
if ($numeroSondaggi > 0) {
echo '
<input type="button" value="vota" onclick="javascript:vota(this.parentNode)">';
echo '</form>';
echo '</div>';
}
}
?>
</body>
</html>
Mentre la pagina vota.php è la seguente:
codice:
<?
if (isset($_POST['Domanda'])) {
$Num = $_POST['scelta'];
$Domanda = $_POST['Domanda'];
$NumRisposta = substr($Num, 0, 1);
$Risposta = substr($Num, 1);
/* INCREMENTO VOTO */
$filename = "sondaggi.txt";
$file = fopen($filename, 'r');
$lineaRisposta = ':'.$Domanda.$Risposta;
// echo $lineaRisposta.'
';
while (!feof($file)) {
$line = fgets($file);
$firstChar = substr($line, 0, 1);
// ERRORE
if ($lineaRisposta == $firstChar)
{
echo 'Eccolo!!!';
}
}
fclose($file);
/* STAMPA RISULTATI */
$filename = "sondaggi.txt";
$file = fopen($filename, 'r');
$i = 0;
while (!feof($file)) {
$line = fgets($file);
$firstChar = substr($line, 0, 1);
switch ($firstChar) {
case "#":
$i++;
if ($i == $Domanda) {
echo 'Hai risposto '.$Risposta.' alla domanda '.$Domanda.'
';
echo ' Risultati:
';
// echo substr($line, 1).'
';
break; }
case ":":
if ($i == $Domanda) {
echo substr($line, 2).' - ';
break; }
case ".":
if ($i == $Domanda) {
echo substr($line, 1).'
';
break; }
$i++;
}
}
fclose($file);
} else {
echo 'Non hai votato';
}
?>
Il problema è che non entra mai nell'if per il controllo di che risposta è stata data...(// ERRORE)
..dove sbaglio???
Grazie mille