Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    scrivere ciclo for che popola selectbox

    Ho una funzione fatta così:
    Codice PHP:
    function ShowForm($id,$num,$rate_me="Rate Me",$rate_it="Rate!",$class="")
    {
       echo 
    '<form action="'.$GLOBALS['PHP_SELF'].'" method="post">';
       echo 
    '<select name="rates" class="'.$class.'">';
       echo 
    '<option value="x" selected>'.$rate_me.'</option>';

       for(
    $x=$num;$x>0;$x--)
        echo 
    '<option value="'.$x.'">'.$x.'</option>';

       echo 
    '</select>';
       echo 
    '<input type="hidden" name="rateit_id" value="'.$id.'">';
       echo 
    '<input type="hidden" name="action" value="doit"> ';
       echo 
    '<input type="submit" value="'.$rate_it.'" class="'.$class.'">';
       echo 
    '</form>';

    Che viene richiamata tramite
    codice:
    ShowForm('prova',5,"Vota questa prova","OK!","rate")
    Il numero 5 nel richiamo di esempio, produce quindi questo output:
    codice:
    <select name="rates" class="rate">
    <option value="x" selected>Vota questa prova</option>
    <option value="5">5</option>
    <option value="4">4</option>
    <option value="3">3</option>
    <option value="2">2</option>
    <option value="1">1</option>
    </select>
    Ora vorrei riscrivere la funzione in modo da poter scrivere le "option value" richiamandole direttamente dalla funzione.

    Vorrei insomma poter scrivere
    codice:
    ShowForm('prova',"Buono,medio,Scarso","Vota questa prova","OK!","rate")
    e cambiare il ciclo di for nella funzione in modo da ottenere
    codice:
    <select name="rates" class="rate">
    <option value="x" selected>Vota questa prova</option>
    <option value="3">Buono</option>
    <option value="2">medio</option>
    <option value="1">Scarso</option>
    </select>
    Quindi ho scritto:
    Codice PHP:
    $options explode(","$num); 
    Come devo scrivere il ciclo FOR per ottenere l'output che desidero?

  2. #2
    non ho capito bene quello che vuoi fare, ma potresti fare una cosa del genere
    Codice PHP:
    $array_value = array("1","2","3");
    $array_echo = array("Sufficente","buono","ottimo");
    $class "boh";

    $n count($array_value);
    if (
    $n==count($array_echo)) {
       echo 
    "<form action=\"$GLOBALS[PHP_SELF]\" method=\"post\">";
       echo 
    '<select name="rates" class="'.$class.'">'
      for (
    $i=0;$i<$n;$i++) {

         echo 
    "<option value=\"$array_value[$i]\">$array_echo[$i]</option>\n";

      }
    echo 
    "</select>";

    puoi anche creare una funzione che accetti come parametri quelle variabili
    debian:~$ uname -r
    2.6.18-1-686
    debian:~$

    Il quiz manager è nato!!! visitate http://shenk.altervista.org !!

  3. #3
    Grazie, mi hai dato la giusta imbeccata e ho modificato il mio script così:

    Codice PHP:
    $options explode(","$num);
    $n count($options);

       echo 
    '<form action="'.$GLOBALS['PHP_SELF'].'" method="post">';
       echo 
    '<select name="rates" class="'.$class.'">';
       echo 
    '<option value="x" selected>'.$rate_me.'</option>';
      for (
    $i=0;$i<$n;$i++) {
      
    $ii $i 1;
         echo 
    "<option value=\"$ii\">$options[$i]</option>\n";}
       echo 
    '</select>';
       echo 
    '<input type="hidden" name="rateit_id" value="'.$id.'">';
       echo 
    '<input type="hidden" name="action" value="doit"> ';
       echo 
    '<input type="submit" value="'.$rate_it.'" class="'.$class.'">';
       echo 
    '</form>';

    Ora produce esattamente l'output che volevo:
    codice:
    <select name="rates" class="rate">
    <option value="x" selected>Vota questa prova</option>
    <option value="1">Scarso</option>
    <option value="2">medio</option>
    <option value="3">Buono</option>
    </select>
    Grazie ancora

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 © 2025 vBulletin Solutions, Inc. All rights reserved.