Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 16
  1. #1

    estrapolare dati da array

    Salve a tutti, vorrei estrapolare dei dati da un array in base all'input ricevuto da un database.
    io ho un input di tipo radio, in base al valore che scelgo si aprirà grazie a jQuery un div con delle piccole informazioni descrittive, per la descrizione ho creato una funzione, non badate alle scritte, e una cosa scolastica:
    Codice PHP:
    <?php
        
        $stato 
    $_GET['stati'];
        
        
        function 
    desc_stati($stato) {
        
            echo 
    '<div id="desc_stati">';
            echo 
    '<h1>'.$stato.'</h1>';
            echo 
    '<div class="desc_stati">';
            echo 
    'Nome completo: '.$nome_compl;
            echo 
    'Nome ufficiale: '.$nome_uff;
            echo 
    'Bandiera: [img]'.$link_band.'[/img]';
            echo 
    'Capitale: '.$capitale;
            echo 
    'Forma di governo: '.$governo;
            echo 
    'Valuta: '.$valuta;
        
        }
        
    ?>
    ora vorrei che tutte le variabili dopo $stato siano estrapolate da un array, in base allo stato scelto, ad esempio così

    Codice PHP:
    $nome_compl = array ('usa' => "Stati Uniti d'America"'urss' => 'Unione delle Repubbliche Socialiste Sovietiche'); 
    se come input scelgo gli usa dovrebbe uscire 'Stati Uniti d'America', come dovrei fare?

  2. #2
    Utente di HTML.it
    Registrato dal
    Aug 2010
    Messaggi
    183
    nel form:
    codice:
    <input type="radio" name="stato_selezionato" value="usa" />
    php:

    $nomestato=$nomecompeto[$_GET['stato_selezionato'];

    (oppure post, se è in post.)

  3. #3
    questo si io invece ho in nomi completi in un array e in base al valore del get devo utilizzare un valore dall'array

  4. #4
    Quindi devi ricavare la chiave (usa,urss...) in base al nome? Partendo dal fatto che l'array ti conviene farlo al contrario, puoi usare una funzione di php per ritornare la chiave in base al contenuto:
    Codice PHP:
    $valore=$_GET['stato_selezionato'];

    $nome_compl = array ('usa' => "Stati Uniti d'America"'urss' => 'Unione delle Repubbliche Socialiste Sovietiche');

    $chiave=array_search($valore,$nome_compl);

    echo 
    $chiave
    In questo modo estrai la chiave in base al contenuto che però, bada bene, deve essere perfettamente identico sia in spazi che formattazione (maiuscolo minuscolo) a quelli contenuti nell'array.
    Dopodiché si assegna alla variabile $chiave il valore della chiave relativa allo stato, che è l'abbreviazione.
    Testato e funzionante
    Ce l'ho fatta! - ItalianPixel -

  5. #5
    grazie mille, siccome sono nuovo nel campo del PHP mi mancava la seconda parte quello della array_search

  6. #6
    Figurati. A buon rendere
    Ce l'ho fatta! - ItalianPixel -

  7. #7
    Codice PHP:
    <?php
        
        $valore 
    $_GET['stati']
        
        
    // Array con dati di ogni Stato
        
    $stato_arr = array ('usa' => 'USA''urss' => 'URSS');
        
    $nome_compl_arr = array ('usa' => "Stati Uniti d\'America"'urss' => 'Unione delle Repubbliche Socialiste Sovietiche');
        
    $nome_uff_arr = array ('usa' => 'United States of America''urss' => 'Сою́з Сове́тских Социалисти́ческих Респу́блик');
        
    $link_band_arr = array ('usa' => 'http://upload.wikimedia.org/wikipedia/commons/thumb/a/a4/Flag_of_the_United_States.svg/800px-Flag_of_the_United_States.svg.png',
                                
    'urss' => 'http://upload.wikimedia.org/wikipedia/commons/thumb/a/a9/Flag_of_the_Soviet_Union.svg/800px-Flag_of_the_Soviet_Union.svg.png');
        
    $capitale_arr = array ('usa' => 'Washington D.C.''urss' => 'Mosca');
        
    $governo_arr = array ('usa' => 'Repubblica presidenziale federale''urss' => 'Stato federale socialista a partito unico');
        
    $blocco_arr = array ('usa' => 'NATO''urss' => 'Patto di Varsavia');
        
    $valuta_arr = Array ('usa' => 'Dollaro statunitense (USD, $)''urss' => 'Rublo sovietico (SUR, руб)');
        
        
    // Estrazione dati
        
    $stato array_search($valore,$stato_arr);
        
    $nome_compl array_search($valore,$nome_compl_arr);
        
    $nome_uff array_search($valore,$nome_uff_arr);
        
    $link_band array_search($valore,$link_band_arr);
        
    $capitale array_search($valore,$capitale_arr);
        
    $governo array_search($valore,$governo_arr);
        
    $blocco array_search($valore,$blocco_arr);
        
    $valuta array_search($valore,$valuta_arr);
        
        
    // Stampa dati
        
    echo '<div id="desc_stati">';
        echo 
    '<h1>'.$stato.'</h1>';
        echo 
    '<div class="desc_stati">';
        echo 
    'Nome completo: '.$nome_compl;
        echo 
    'Nome ufficiale: '.$nome_uff;
        echo 
    'Bandiera: [img]'.$link_band.'[/img]';
        echo 
    'Capitale: '.$capitale;
        echo 
    'Forma di governo: '.$governo;
        echo 
    'Blocco: '.$blocco;
        echo 
    'Valuta: '.$valuta;
        
    ?>
    ragazzi ho ancora un problema, non capisco dove ho sbagliato, mi dice
    Parse error: syntax error, unexpected T_VARIABLE in C:\Program Files (x86)\EasyPHP-5.3.6.0\www\php_stati.php on line 6

    inoltre ho un dubbio ma così mi viene stampata la chiave o il valore della chiave?

  8. #8
    La chiave.
    L'errore sta qui:
    Codice PHP:
    $stato_arr = array ('usa' => 'USA'/*;*/'urss' => 'URSS'); 
    Hai messo il punto e virgola invece della virgola.
    Ce l'ho fatta! - ItalianPixel -

  9. #9
    ho corretto il punto e virgola, ma mi da sempre lo stesso errore

    EDIT: ho risolto il problema ma non mi stampa a video nessuna scritta, e come se invece di trovare i valori delle chiavi trova le chiavi stesse

  10. #10
    Ovvio, array_search cerca tra i VALORI!
    Il modo più semplice è fare
    Codice PHP:
    $stato $stato_arr[$valore];
    $nome_compl $nome_compl_arr[$valore];
    .... 

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.