Colui che dice "io posso"
e colui che dice "io non posso"
hanno entrambi ugualmente ragione.

Avendo bisogno di implementare una rubrica in un progetto ho avuto l’esigenza di memorizzare per ciascun contatto un numero non precisato di recapiti.
Per la duplicazione del campo recapito ho utilizzato il plugin jquery relCopy che copia un qualsiasi elemento, e suoi figli, dal DOM.
Opzioni del plugin sono:
Per utilizzarlo basta chiamare $('selettore').relCopy({opzioni}) su un qualsiasi elemento del DOM con un selettore di tipo jQuery definito nell’attributo rel dell’elemento.
Il modulo visualizzato contiene i campi descrittivi del contatto più la possibilità di associarvi quanti recapiti vogliamo:
<p class="clone"><input type="text" name="recapiti[]" class='input'/></p> <p><a href="#" class="add" rel=".clone">Aggiungi recapito</a></p> <p><input type="submit" value="Salva" /></p>
Dopo i campi predefiniti per descrivere un contatto abbiamo un paragrafo con un campo di tipo testo. Il paragrafo ha la classe clone la stessa utilizzata nell’attributo rel del link posto sotto, il quale ha la funzione di clonarlo.
Abbiamo indicato recapiti[] nell’attributo name del campo del recapito in modo da ottenere un array di tutti i recapiti inseriti nell’array globale $_POST: non mettendo le parentesi quadrate il modulo invierebbe il valore dell’ultimo recapito aggiunto.
Per prima cosa bisogna includere la libreria jQuery (dai server di Google) poi il plugin relCopy ed infine il nostro file di script:
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script> <script type="text/javascript" src="relCopy.jquery.js"></script> <script type="text/javascript" src="script.js"></script>
Ecco il codice del nostro file di script:
$(document).ready(function(){
// link inserito alla fine dell'elemento clonato che permette di eliminarlo
var removeLink = ' <a class="remove" href="#" onclick="$(this).parent().slideUp(function(){ $(this).remove() }); return false">remove</a>';
// chiamata permette di clonare il paragrafo con all'interno il campo di testo del recapito
$('a.add').relCopy({ append: removeLink });
});
Tramite la chiamata $('a.add').relCopy({ append: removeLink}); associamo al collegamento la funzione di clonare il recapito. Nell’opzione append utilizzata del plugin abbiamo definito un link che tramite un metodo jQuery permette di eliminare il corrispondente elemento clonato.
Il codice che segue scandisce l’array $_POST['recapiti'] per estrarre i singoli valori inseriti:
<?php
if($_POST['recapiti']){
$array_recapiti = $_POST['recapiti'];
foreach ($array_recapiti as $recapito) {
if (strlen($recapito)>0) {
//operazioni sul singolo recapito
echo $recapito."<br />";
}
}
}
?>
Nel corso degli anni ho acquisito una vasta esperienza nella progettazione e realizzazione in ambito siti e applicazioni web, ma continuo ad approfondire le mie conoscenze e a sperimentare, per migliorarmi e seguire l'evoluzione di Internet.
Mi occupo delle nuove tecnologie di sviluppo sul Web/Internet, con particolare attenzione ad Ajax, Web2.0, jQuery, PHP.
Ulteriori conoscenze da esperienze lavorative:
domenico
maggio 12th, 2010 alle 12:45
come posso rilevare
i dati inseriti tramite asp?