Salve a tutti e grazie per l'attenzione. Quello che propongo qui è un problema e non la soluzione, non sono programmatore quindi i molti post che ho letto prima di postare mi risultano... coriacei.

Ho un form con circa una 20 di campi che si convalida in php e il cui scopo è quello di aggiornare i metadati all'interno di un file JPEG. Due di questi campi sono "categoy" e "subcategories". il primo è necessariamente un codice di 3 lettere maiuscole tipo WEA, ACE, HUH, eccetera che seleziono con un select. l'altro è in definitiva un text area.

I dati provengono da un file di testo come questo:

codice:
WAR=16000000, unrest, conflicts and war, Agitazioni,Conflitti, Guerre,
	16001000, act of terror, Terrorismo, 
	16002000, armed conflict, Conflitto armato, 
	16003000, civil unrest, Disordini, 
		16003001, revolutions, Rivoluzione, 
		16003002, rebellions, Ribellione, 
		16003003, political dissent, Dissenso, 
		16003004, religious conflict, Conflitti religiosi, 
		16003005, social conflict, Conflitti sociali, 
	16004000, coup d'etat, Colpo Stato, 
	16005000, guerrilla activity, Guerriglia, 
		16005001, bioterrorism, Bioterrorismo, 
		16005002, bombings, Attentato dinamitardo, 
	16006000, massacre, Massacro, 
		16006001, genocide, Genocidio, 
	16007000, riots, Sommossa, 
	16008000, demonstration, Manifestazione, 
	16009000, war, Guerra, 
		16009001, civil war, Guerra civile, 
		16009002, international military intervention, Intervento militare internazionale, 
		16009003, prisoners and detainees, Prigionieri Guerra, 
	16010000, conflict (general), Conflitti (generico), 
		16010001, peacekeeping force, Peacekeeping, 
	16011000, crisis, Crisi, 
	16012000, weaponry, Armamenti,
ho postato solo una delle 17 categorie per farmi capire in realtà il file di testo è moooooolto più lungo anche perchè categorie come SPO (sport hanno più di 100 voci annidiate.

Come potete vedere ogni categoria è definita da questa stringa
codice:
WAR=16000000, unrest, conflicts and war, Agitazioni,Conflitti, Guerre,
in cui "WAR" è il valore che mi interessa mentre tutta la stringa è l'etichetta

le sottocategorie invece sono identificate da una stringa tipo:

codice:
16001000, act of terror, Terrorismo,
esistono anche sotto-sotto categorie tipo:
codice:
16010000, conflict (general), Conflitti (generico), 
		16010001, peacekeeping force, Peacekeeping,
tutte le voci del file sono gerarchizzate in base al codice numerico a 7/8 cifre la cui struttura semplificata è questa:
codice:
1000000
           1001000
                      1001001
quindi serve una select semplice per selezionare la "category" tra le 17 possibili, una altra select dipendente dalla prima ma con a sua volta select annidiate per scegliere una o più "subcategories" e per finire una textarea per raccogliere tutte le "subcategories" aggiunte.

Il form deve essere inviato solo alla fine quando tutto è completo quindi le operazioni di cui sopra devono essere fatte non in php (l'unico linguaggio che mastico appena).

Il file di testo di cui vi parlo non è un'idea mia ma lo derivo da una tassonomia rilasciata da un consorzio per la standardizzazione www.iptc.org che periodicamente rilascia gli agiornamenti in formato xml (un vero bordello, se siete curiosi ecco il link: Topicset)
che io mi ripulisco a mano!!!!

Bel casino vero!!!! Per il momento io mi sono fatto una paginetta in PHP che mi visualizza il file di testo e mi copio i valori che mi interessano nel form in un'altra pagina. Soluzione empirica abbastanza squallida ecco perchè mi permetto di sottoporvi il problema.

Chiunque avesse voglia di rispondere a questo invito ha tutta la mia stima e ammirazione per l'improba sfida.