Primo Precedente 2 di 2
  1. HangmanHangman è offline #16
    08-09-07 17:35

    Citazione Xboxman
    Grazie perfetto! Ora immagino che mi servono 3 variabili contatore giusto? ^^
    Io memorizzerei in un file i numeri di voti per ogni opzione, separati da un carattere speciale, ad esempio:

    2|9|1|3

    In questo modo ogni volta che qualcuno vota, basta prendere i risultati da file e riscriverli così:

    Codice:
    $voti_stringa = file_get_contents('file.dat');
    $voti = explode('|',$voti_stringa); // http://it.php.net/explode
    
    $value = $_POST['tasto'];
    $voti[$value]++;
    
    $voti_stringa = implode('|',$voti); // http://it.php.net/implode
    
    file_set_contents('file.dat',$voti_stringa);
    Ovviamente i radio button devono avere come valore gli indici dell'array (0, 1, 2, ...).
    Rispondi con Citazione 

  2. L'avatar di Xboxman XboxmanXboxman è offline #17
    08-09-07 17:37

    Ora vi riassumo a che punto sono:

    - sondaggio.htm -
    Codice:
    <html>
     <head><title>Sondaggio</title></head>
     <body>
      <form action="sondaggio.php" method="post">
       <input type="radio" name="tasto" value="r1">Blu<br>
       <input type="radio" name="tasto" value="r2">Rosso<br>
       <input type="radio" name="tasto" value="r3">Giallo<br>
       <input type="submit" value="Vota">
      </form>
     </body>
    </html>
    - sondaggio.php -
    Codice PHP:
    <?php
    $valore 
    $_POST['tasto'];
    if (
    $valore==r1$blu++;
    else
    if (
    $valore==r2$rosso++;
    else
    if (
    $valore==r3$giallo++;
    echo 
    "Blu = "; echo $blu; echo "\n";
    echo 
    "Rosso = "; echo $rosso; echo "\n";
    echo 
    "Giallo = "; echo $rosso; echo "\n";
    ?>
    Ho fatto una prova, ma il risultato finale è:"Blu = Rosso = Giallo =".
    Mi sa che ho sbagliato qualcosa nelle condizioni Ma cosa? E perchè non riesco ad andare a capo con "\n"?? o_O
    Rispondi con Citazione 

  3. HangmanHangman è offline #18
    08-09-07 17:38

    Citazione Xboxman
    E perch&#232; non riesco ad andare a capo con "\n"?? o_O
    Perch&#232; stai scrivendo una pagina HTML, non un txt per sistemi UNIX.
    Fai echo "<br />".

    Per il resto leggi il mio post di sopra
    Rispondi con Citazione 

  4. L'avatar di Xboxman XboxmanXboxman è offline #19
    08-09-07 17:41

    Citazione Hangman
    Io memorizzerei in un file i numeri di voti per ogni opzione, separati da un carattere speciale, ad esempio:

    2|9|1|3

    In questo modo ogni volta che qualcuno vota, basta prendere i risultati da file e riscriverli così:

    Codice:
    $voti_stringa = file_get_contents('file.dat');
    $voti = explode('|',$voti_stringa); // http://it.php.net/explode
    
    $value = $_POST['tasto'];
    $voti[$value]++;
    
    $voti_stringa = implode('|',$voti); // http://it.php.net/implode
    
    file_set_contents('file.dat',$voti_stringa);
    Ovviamente i radio button devono avere come valore gli indici dell'array (0, 1, 2, ...).
    Ok questo per leggere, ma per scrivere i valori come faccio??
    Rispondi con Citazione 

  5. HangmanHangman è offline #20
    08-09-07 17:49

    Citazione Xboxman
    Ok questo per leggere, ma per scrivere i valori come faccio??
    Sono le ultime due righe
    Rispondi con Citazione 

  6. L'avatar di Xboxman XboxmanXboxman è offline #21
    08-09-07 17:52

    Ehi Hangman ho provato il tuo codice ma mi da questo errore:

    Fatal error: Call to undefined function: file_set_contents() in /membri2/thedoors/sondaggio.php on line 10

    Rispondi con Citazione 

  7. HangmanHangman è offline #22
    08-09-07 18:09

    Ti ho risposto su MSN.
    Per chi fosse interessato, basta aggiungere la definizione nel file se la versione di PHP che si utilizza non la supporta:

    Codice:
    if(!function_exists('file_set_contents'))
    {
    	function file_set_contents($filename,$contents)
    	{
    		$f=fopen($filename,'w');
    		fwrite($f,$contents);
    		fclose($f);
    	}
    }
    Rispondi con Citazione 

  8. L'avatar di Xboxman XboxmanXboxman è offline #23
    08-09-07 18:10

    I miei più sentiti ringraziamenti grande Hangman, sei Dio
    Rispondi con Citazione 

  9. HangmanHangman è offline #24
    08-09-07 18:12

    No, Dio &#232; lui -> www.google.com

    Rispondi con Citazione 

  10. L'avatar di Xboxman XboxmanXboxman è offline #25
    08-09-07 18:14

    Bene, per completare il lavoro del sondaggio avrei bisogno di alcuni piccoli accorgimenti:

    Una volta completato il form, vorrei che il risultato dei voti fosse aperto in una nuova pagina che abbia delle grandezze che posso impostare io!
    Rispondi con Citazione 

  11. HangmanHangman è offline #26
    08-09-07 18:21

    Citazione Xboxman
    Bene, per completare il lavoro del sondaggio avrei bisogno di alcuni piccoli accorgimenti:

    Una volta completato il form, vorrei che il risultato dei voti fosse aperto in una nuova pagina che abbia delle grandezze che posso impostare io!
    Intendi in una finestra?
    Rispondi con Citazione 

  12. L'avatar di Xboxman XboxmanXboxman è offline #27
    08-09-07 18:23

    Citazione Hangman
    Intendi in una finestra?
    Esatto!
    Rispondi con Citazione 

  13. HangmanHangman è offline #28
    08-09-07 18:30

    Citazione Xboxman
    Esatto!
    Codice:
    <form action="sondaggio.php" onsubmit="window.open('url da aprire','Risultati sondaggio','width=400,height=300')" />
    Il primo argomento &#232; l'URL della pagina da aprire, mentre il secondo &#232; il titolo della finestra che apparir&#224; nella titlebar.
    Cambia width e height a tuo piacimento; per gli altri parametri cerca su google.
    Se vuoi che venga solo aperta la finestra senza che venga caricata la pagina specificata nel parametro action del form (anche se &#232; sconsigliabile), in onsubmit aggiungi "return false":

    Codice:
    onsubmit="window.open('url da aprire','Risultati sondaggio','width=400,height=300'); return false;"
    Edit: abbiamo notato che con "return false" non vengono inviati i dati, quindi un approccio simile sarebbe possibile solamente inviando i dati via AJAX.

    Per la pagina dei risultati, le possibilit&#224; sono due:

    - crei un altro file php con il codice per mostrare i risultati;
    - usi sempre lo stesso file php usando una variabile $action - in questo modo per votare / mostrare i risultati puoi usare URL tipo questi:
    /sondaggio.php?action=vote
    /sondaggio.php?action=results

    Codice:
    $action = $_GET['action'];
    switch($action)
    {
    	case 'vote':
    	{
    		// codice per votare
    	}
    	break;
    
    	case 'results':
    	{
    		// mostra i risultati
    	}
    }
    A questo punto come URL a window.open passeresti: sondaggio.php?action=results
    Rispondi con Citazione 

 
Primo Precedente 2 di 2