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:
Mentre la pagina vota.php è 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>
Il problema è che non entra mai nell'if per il controllo di che risposta è stata data...(// ERRORE)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'; } ?>
..dove sbaglio???
Grazie mille

Oppa
Rispondi quotando