Visualizzazione dei risultati da 1 a 4 su 4

Discussione: Form php Vs Form html

  1. #1

    Form php Vs Form html

    Salve di nuovo,
    so' di aver gia' postato questo problema tempo fa, ma il numero di risposte e' ancora fermo a 0, cosi' provero' a cambiare la sua formulazione.

    Ho due form che costituiscono un questionario, secondo me identici, uno popolato staticamente con html e l'altro utilizzando php appoggiato ad un DB, il problema e' che dal codice HTML i radio vengono visualizzati correttamente e cioe' viene settata come checked la prima risposta di OGNI domanda(cioe' quello che voglio ottenere anche dall'altro codice), mentre dal codice PHP viene mostrata checked solo l'ultima risposta dell'intero questionario.

    Grazie mille.


    FORM POPOLATO VIA HTML
    codice:
    <table align="center" width="90%" cellpadding="2" cellspacing="0" style="border: 1px solid black" border=1>
    <form name="sonda" method="get" action="./showdata.php">
    	<tr>
    		<td colspan="2">
    
    			<h3>1. I understand something better after I</h3>
    			<input type="Radio" name="response[0]" value="1" checked>try it out.
    
    			<input type="Radio" name="response[0]" value="2">think it through.
    		</td>
    	</tr>
    
    ......... e cosi' via........
    
    	<tr>
    		<td width="60" style="border-top: 1px solid black;" align="center">
    			<input type="submit" name="submit" value="Vota">
    		</td>	
    	</tr>
    </form>
    </table>


    FORM POPOLATO VIA PHP+DB
    codice:
    echo "<table align=center width=90% cellpadding=2 cellspacing=0  style=\"border: 1px solid black\" border=1> ";
    echo "<form name=\"sonda\" method=\"get\" action=\"./showdata.php\"> ";
    while ($row = @mysql_fetch_array($query)) 
    {
    $i=0; 
    echo "<tr><td>";
    	while($i < $numrows)
    	{ 
    	if ($row[$i]!="") {		
    		//scrivo la domanda
    		if ($i % 3 == 0) echo "".$row[$i]."
    "; 
    		else {
    		//scrivo le risposte
    		echo "<input type=\"Radio\" name=\"response[<?=$i%3;?>]\" value=1 checked> $row[$i] 
    ";
    		$i++;
    		echo "<input type=\"Radio\" name=\"response[<?=$i%3;?>]\" value=2> $row[$i]";
    		echo "</td></tr>";
    		}
    	}
    	$i++;
    	}
    }
    
    echo "<tr><td width=60 style=\"border-top: 1px solid black;\" align=center>
    	  <input type=\"submit\" name=\"submit\" value=\"Send\">
    	  </td>	
          </tr>
    </form></table>
    ";

  2. #2
    Utente di HTML.it L'avatar di moskitoita
    Registrato dal
    Feb 2004
    Messaggi
    1,255

    echo "<input type=\"Radio\" name=\"response[<?=$i%3;?>]\" value=1 checked> $row[$i]
    ";
    $i++;
    echo "<input type=\"Radio\" name=\"response[<?=$i%3;?>]\" value=2> $row[$i]";
    echo "</td></tr>";
    }

    Qui qualcosa non torna: response[<?=$i%3;?>] è trattato come una stringa è chiaro che se i campi li chiami tutti response[<?=$i%3;?>] ti setta come checked solo l'ultimo

    Meglio
    echo "<input type=\"Radio\" name=\"response" . $i%3 . "\" value=2> $row[$i]";

    Ma ancora non capisco bene, pova a postare l'html prodotto dalla pagina php

  3. #3
    Ok, provero' quanto prima, adesso non mi trovo nella sede adatta...
    Grazie per il suggerimento di analizzare il codice html prodotto,
    proprio non mi era venuta in mente una idea cosi' tanto semplice quanto efficace!


  4. #4
    Ok risolto!

    Basta incrementare come si deve $cont ed il gioco è fatto:

    Codice PHP:
    echo "<input type=\"Radio\" name=\"response[$cont]\" value=2> $row[$i]"
    Bye

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.