Visualizzazione dei risultati da 1 a 4 su 4

Discussione: problema con array

  1. #1
    Frontend samurai L'avatar di fcaldera
    Registrato dal
    Feb 2003
    Messaggi
    12,924

    problema con array

    Ho il seguente codice che popola una select con i dati contenuti in un array in PHP.

    codice:
    <select name="area" onchange="document.getElementById('frm_cat').submit();" class="selectcat">
       <option value="0">Seleziona una categoria
       <?php
        
        while ($element = each($area)) { 
    		echo "\t<option ";
    		if (($element[0]) == $_POST['area'])
    			echo 'selected ';
    		echo 'value = "'.$element[0].'">'.$element[1]."\n";
      }  
      ?>
       </select>
    provandolo con PHP 4.3.10 + winXP non mi dà nessun problema. Con PHP 4.3.8 + winXp all'interno della select mi appare il seguente errore:

    ---
    Warning: Variable passed to each() is not an array or object in c:\appserv\www\imagegallery\admin\admin.php on line 91
    ---

    Qualcuno sa quale può essere il problema ed eventualmente come fare la stessa cosa con un codice più robusto??

    Grazie
    Fabrizio
    Vuoi aiutare la riforestazione responsabile?

    Iscriviti a Ecologi e inizia a rimuovere la tua impronta ecologica (30 alberi extra usando il referral)

  2. #2
    Utente di HTML.it L'avatar di gianiaz
    Registrato dal
    May 2001
    Messaggi
    8,027

    Re: problema con array

    Io di solito sono abituato ad usare foreach, comunque controllo sempre prima che la variabile in oggetto sia un array con la funzione is_array().
    Certo da quel che dici il problema non è se la variabile sia o meno un array, ma che lo stesso script ha comportamenti diversi.

    Magari prima di cominciare il ciclo (per fare un po' di debug) inserisci questo codice:

    codice:
    echo "<pre>"; 
    print_r($area);
    echo "</pre>";

    un ultima cosa , $area e $_POST['area'] sono 2 var diverse?

    ciao

  3. #3
    Frontend samurai L'avatar di fcaldera
    Registrato dal
    Feb 2003
    Messaggi
    12,924
    $area è un array definito così

    $area[1] = "portfolio";
    $area[2] = "life-style";
    $area[3] = "arts & design";

    può dipendere forse dal fatto che il primo indice non è zero?

    mentre $_POST['area']

    è l'indice dell'array che viene postato (infatti 'area' è il nome della select. All'evento onchange della select il form che la contiene fa un submit. Uso $_POST['area'] in quel pezzo di codice per scegliere quale opzione è selezionata di default.
    Vuoi aiutare la riforestazione responsabile?

    Iscriviti a Ecologi e inizia a rimuovere la tua impronta ecologica (30 alberi extra usando il referral)

  4. #4
    Utente di HTML.it L'avatar di gianiaz
    Registrato dal
    May 2001
    Messaggi
    8,027
    potrebbe essere, prova a far partire gli indici dallo zero.

    ciao

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.