Selezionare elementi da un elenco in modo dinamico e inviarli al database

  • Creatore Discussione Creatore Discussione asevenx
  • Data di inizio Data di inizio

asevenx

Utente Attivo
7 Nov 2009
312
0
16
Salve a tutti, avrei bisogno di un consiglio. Premetto che non sono sicuro che questa sia la sezione giusta perché parte del procedimento credo andrà fatto con js, ma non ne capisco molto.
Vorrei creare un elenco di elementi (provenienti dal database) dal quale l'utente dovrà selezionarne alcuni e inviare i risultati in un database. Prima di essere inviati al db, gli elementi selezionati devono formare a loro volta una lista che si aggiorna in modo dinamico quando l'utente clicca sugli elementi (per aggiungerli e rimuoverli).
Con un po di sforzi ero riuscito a creare quanto desiderato in questo modo:
HTML:
<script type="text/javascript" language="javascript">
function seleziona(select, list)
{
	if (document.getElementById){
		if(document.getElementById(select).style.display == 'none'){
			document.getElementById(select).style.display = 'block'; //primo evento
			document.getElementById(select).disabled = false;			
			document.getElementById(list).style.background = 'red'; //secondo evento
		
		}
		else{
			document.getElementById(select).style.display = 'none';
			document.getElementById(select).disabled = true;
			document.getElementById(list).style.background = 'yellow';

		}
	}
}
</script>
HTML:
<body>

<?php
//uso il ciclo for per simulare l'ingresso di elementi provenienti dal database
//$sport è un array con 7 elementi
for ($i = 0; $i <= 7; ++$i) {
?>

<div id="idList[<?php echo $i ?>]" style="background:yellow">
	<a href="#" onclick="seleziona('idSelect[<?php echo $i ?>]', 'idList[<?php echo $i ?>]'); return false">
	<?php echo $sport[$i] ?>
	</a>
</div>

<?php
} 
?>

<form action="action.php" method="post">
<?php
for ($i = 0; $i <= 7; ++$i) {

?>
<a href="" onclick="seleziona('idSelect[<?php echo $i ?>]', 'idList[<?php echo $i ?>]'); return false">
	<input type="text" id="idSelect[<?php echo $i ?>]" name="<?php echo "nameSelect".$i ?>" style="display:none" value="<?php echo $sport[$i] ?>"> 
</a>	
<?php
}
?>
	<input type="submit" value="Submit">
</form>
Purtroppo però quando invio i dati tramite il metodo post in questo modo ottengo tutti gli elementi della lista originale (in questo caso l'array), mentre dovrei passare solo gli elementi effettivamente selezionati. Come posso fare?

Grazie a tutti per l'aiuto
 

Discussioni simili