paolo@bimodesign.com | +34 608 61 64 10

Framework

        

Array e tag select (caso 2)

Vi illustro un altro esempio per l'uso di un array che contiene informzioni da visualizzare in un tag select di un form e quindi poi recuperate via POST.
Il codice e' distribuito su piu' file, ma qui vi elenco le parti senza questa distinzione.

1. La definizione dell'array
Inseriamo questa definizione in un file di configurazione e definiamo la variabile che lo contiene come globale, in maniera che all'occorrenza potra' essere modificata. Non e' per ora interesse di questo articolo.
L'array contiene un elenco di server, il loro indirizzo ip e se sono o meno disponibili.

    global $gameServers;

    $gameServers=array(
        0=>array(
                "name"=>"paolo 01",
                "ip"=>"111.111.111.111",
                "available"=>"1"
            ),
        1=>array(
                "name"=>"paolo 02",
                "ip"=>"111.122.133.144",
                "available"=>"0"
        )
    );

2. La select del form

<select class="servidor-login" name="server">
<?php
    $keys=array_keys($gameServers);
    for($k=0;$k<count($keys);$k++)
    {
        if($gameServers[$keys[$k]]['available']){
             $cssClass="server-available";
             $labelDesc="AVAILABLE";
        }else{
             $cssClass="server-not-available";
             $labelDesc="AVAILABLE";
        }

        echo "<option value=".$k." class=".$cssClass.">".$gameServers[$keys[$k]]['name']." (".$labelDesc.")</option>";
     }
?>
</select>

3. Uso nel codice
L'esempio riporta l'utilizzo delle curl, che verranno spiegate in un altro articolo.

if($gameServers[$_POST['server']]['available']){
    $url = "http://".$gameServers[$_POST['server']]['ip']."index.php?action=login";
    
    $handler = curl_init();

    curl_setopt($handler, CURLOPT_URL, $url);
    curl_setopt($handler, CURLOPT_POST,true);
    curl_setopt($handler, CURLOPT_POSTFIELDS, $_POST);
    $response = curl_exec ($handler);
}