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

    Problema di associazione array

    Salve a tutti.
    Purtroppo ho un problema la cui soluzione non sono riuscito a trovare vi spiego brevemente di cosa si tratta.
    Ho un form in cui i dati vengono caricati tramite un database mysql del tipo.

    Codice PHP:
    //Carico prodotti dal database mysql
    $obj=new mysql();
    $obj->connessione();
    $dati=mysql_query("SELECT * FROM prodotti WHERE attivo = '1' ORDER BY nome");
    while($array=mysql_fetch_array($dati)) { ?>
    <tr>
    <td><input type="checkbox" name="prodotto[<? echo $conta?>]" value="<? echo $array[id]; ?>"><? echo $array[nome]; ?></td>
    <td>Quantita [<? echo $array[misura]; ?>]<input type="text" name="quantita[<? echo $conta?>]"></td>
    </tr>
    <? $conta++;} ?>
    Naturalmente questo codice crea due array (prodotto e quantita) i cui indici sono definiti dalla variabile $conta che viene incrementata ad ogni record.
    Il mio problema è una volta inviato il form riuscire a ricollegare ad ogni prodotto il suo quantitativo considerando che puo' essere selezionato un prodotto, due tre.... o tutti e che le quantità possono essere segnate, non segnate o segnate in punti in cui il corrispondente prodotto non è selezionato del tipo:

    Segnato Prodotto Quantita
    X Prodotto 1 10
    Prodotto 2 100
    X Prodotto 3 200

    Ovviamente in ricostruzione dell'array devo avere
    Prodotto 1 -> 10
    Prodotto 3 -> 200
    (il prodotto 2 non è segnato).

    Qualcuno mi indica come poter fare l'associazione?
    Grazie!

  2. #2
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    ma se i campi si chiamano X[i] e Y[i] basta che associ gli indici... quindi X[$i] con Y[$i] e così via...

  3. #3
    Magari...
    Se seleziono il secondo prodotto tramite il checkbox l'array parte dal secondo termine e non dal primo quindi mi ritrovo la quantità del primo sul secondo

  4. #4
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    non deve: controlla l'HTML sorgente... se poi i tuoi "indici" (var. $conta) NON coincide con i prodotti allora forse devi usare come indici un ID dei dati (preso dal db), anzichè una var. di ciclo

  5. #5
    L'html è quello che ho scritto e ho verificato empiricamente che se non seleziono il check box nn va nell'array. Dopo ricontrollo il codice. Per quanto riguarda l'altro metodo alla fine ho risolto in quel modo cioè mettere come indice l'ID. Tuttavia volevo sapere se c'è un metodo per crearlo associativo l'array:
    Id 34 -> quantita 450

  6. #6
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    mah... l'array associativo puoi metterlo nei tag in più modi, p.es.:

    codice:
    <input type="text" name="esempio[1]"/> <---- espliciti l'indice numerico
    <input type="text" name="esempio[chiave]"/> <---- espliciti l'indice stringa
    <input type="text" name="esempio[]"/> <---- non espliciti l'indice
    nell'ultimo caso avrai un vettore con indici numerici sequenziali

    Nel tuo codice vedo che generi due INPUT "prodotto[$conta]" e "quantita[$conta]" (scrivo così per rapidità)... quindi dovrebbero sempre essere "abbinati"... eventualmente, mai sfasati

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.