• User Newbie

    Passare da una select a multi checkbox

    Salve a tutti, io ho uno script (di cui posto di seguito il listato) in cui seleziono ogni partecipante da assegnare ad un torneo singolarmente attraverso una select...

    Quello di cui avrei bisogno è impostare lo script di modo da selezionare più di un partecipante attraverso una checkbox e assegnarli tutti contemporaneamente allo stesso torneo.

    In pratica avrei bisogno di ottimizzare i tempi facendo un'unica selezione dei partecipanti ad un singolo torneo anzichè prenderli singolarmente...qualcuno saprebbe come aiutarmi?
    Ho provato ad impostare la checkbox, ma se seleziono piu di un utente, il sistema mi assegna al torneo solo l'ultimo selezionato...

    <?php
    
      include "../includes/config.php";
    if (isset($_COOKIE["ValidUserAdmin"]))
    {
      require ( "../includes/CGI.php" );
      require ( "../includes/SQL.php" );
    
      $cgi = new CGI ();
      $sql = new SQL ( $DBusername, $DBpassword, $server, $database );
    
      if ( ! $sql->isConnected () )
      {
        die ( $DatabaseError );
      }
      
    ?>
    <html>
    <head>
    <title>Gestione Tornei</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <link href="../includes/style.css" rel="stylesheet" type="text/css" />
    </head>
    <body bgcolor="#F4F4F4">
    <?PHP include ("header.php"); ?>
    <table width="100%" cellpadding="5" cellspacing="0" border="0">
    <tr>
    <td valign="top" bgcolor="ghostwhite" class="menu"><?PHP include ("leftmenu.php"); ?></td>
    <td bgcolor="#FFFFFF">&nbsp;</td>
    <td valign="top" align="left" width="100%" bgcolor="#FFFFFF"><h1><br />
      <font color="#CC0000">Assegna i giocatori ai tornei</font></h1>
    <br />
    <p>Se fai molti tornei, questa opzione ti permette di assegnare i giocatori ad ogni singolo torneo.</p>
    <?php
    
      if ( $cgi->getValue ( "op" ) == "AssignPlayer" )
      {
    
      $result = mysql_query("SELECT playerid FROM ".$score_table." WHERE playerid = " . $sql->quote ( $cgi->getValue ( "playerid" ) ) . " AND tournamentid = " . $sql->quote ( $cgi->getValue ( "tournamentid" ) ) . "") or die ("$DatabaseError"); 
    $chkd_email = mysql_numrows($result);
    
    if ($chkd_email != "") {
    print "<p class=\"red\"><strong>Il giocatore è già stato assegnato a questo torneo</strong></p>";
     }
     else {
    
      mysql_query("INSERT INTO ".$score_table." VALUES (
    '',
    " . $sql->quote ( $cgi->getValue ( "playerid" ) ) . ",
    " . $sql->quote ( $cgi->getValue ( "tournamentid" ) ) . ",
    '0',
    '$dateadded'
    )") or die ("$DatabaseError"); 
        ?>
    <br>
    <p align="center" class="red"> <strong><?php echo $_POST['playerid']; ?></strong> è stato assegnato al torneo.</p>
    <?php
      }
      }
    ?>
    
    <form method="post">
    <input name="op" type="hidden" value="AssignPlayer">
    <select name="playerid" size="1">
    <option value="">Seleziona giocatore...</option>
    <?PHP 
    
        $rows = $sql->execute (
          "SELECT * FROM " . $player_table .
          " ORDER BY playerid ASC", SQL_RETURN_ASSOC );
    
        for ( $i = 0; $i < sizeof ( $rows ); ++$i )
        {
          $row = $rows [ $i ];
          
          ?>
    <option value="<?php echo $cgi->htmlEncode ( $row [ "playerid" ] ); ?>">
    <?php echo $cgi->htmlEncode ( $row [ "playerid" ] ); ?>
    </option>
    <?php
        }
    
    ?>
    </select> 
    &nbsp;&nbsp;<em>e assegnalo al torneo =></em>&nbsp;&nbsp;
    <select name="tournamentid" size="1">
    <option value="">Seleziona torneo...</option>
    <?PHP 
    
        $rows = $sql->execute (
          "SELECT * FROM " . $tournament_table .
          " ORDER BY id DESC", SQL_RETURN_ASSOC );
    
        for ( $i = 0; $i < sizeof ( $rows ); ++$i )
        {
          $row = $rows [ $i ];
          
          ?>
    <option value="<?php echo $cgi->htmlEncode ( $row [ "tournamentid" ] ); ?>">
    <?php echo $cgi->htmlEncode ( $row [ "tournament_name" ] ); ?>
    </option>
    <?php
        }
    
    ?>
    </select> &nbsp;&nbsp;<input type="submit" value="Assegna"  ONCLICK="return confirm('Sicuro di voler aggiungere questo giocatore al torneo?');" />
    </form>
    <br /></td>
    </tr>
    </table>
    <?PHP include ("footer.php"); ?>
    </body>
    </html>
    <?php
    }
       else
      {
        header("Location: index.php");
        exit;
      }
    ?>
    ```Spero di essere stato abbastanza chiaro...ringrazio anticipatamente chi potrà essermi di aiuto :1145534674-Cartelli

  • User Attivo

    <select name="playerid[]" multiple="multiple" size="5">

    così quando lo passi al php, lo tratti come un array di array:

    $_POST[playerid[]]

    spero di essermi spiegato


  • User Newbie

    @Digital Daigor said:

    <select name="playerid[]" multiple="multiple" size="5">

    così quando lo passi al php, lo tratti come un array di array:

    $_POST[playerid[]]

    spero di essermi spiegato

    Ho capito cosa intendi, ma sapresti dirmi come fare?
    O meglio...dove collocare $_POST[playerid[]] ...

    Grazie 1000


  • User Newbie

    Daigor ho fatto un po di prove ma non riesco a trovarne il bandolo...sapresti indicarmi come modificare il file in questione?

    Grazie ancora