Avevo la necessità di ripopolare una select dinamicamente, a partire da una sequenza statica.
<select id="selectBox">
<option>1</option>
<option>2</option>
<option>3</option>
<option>4</option>
</select>
Per cancellare tutte le option basta usare la funzione JQuery “empty”:
$('#selectBox').empty();
Per ripopolare le option:
$('#selectBox').append('<option>New Option</option>');
$('#selectBox').append('<option>New Option1</option>');
...
Per fare il tutto in un colpo solo:
$('#selectBox').empty().append('<option>New Option</option>').append('<option>New Option1</option>');
Scritto il 01-11-2011 da Vito Antonio Bonardi
Pubblicato su : Programming, Technology
4
Ecco poche righe di codice per inviare una mail con allegato in java, niente di più semplice!
import javax.activation.DataHandler;
import javax.mail.Message;
import javax.mail.Transport;
import javax.mail.Session;
import javax.activation.FileDataSource;
import javax.mail.Multipart;
import java.util.Date;
import java.util.Properties;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMultipart;
public class sendEmailWithAttach
{
public static boolean sendEmailAttach(String sFrom, Strind sTo, String sSubject, String sMsg, String sFile, String sSmtpServer)
{
boolean bEsito=true;
Properties pProps = System.getProperties();
pProps.put("mail.smtp.host",sSmtpServer);
Session session = Session.getIstance(pProps, null);
try
{
//creo il messaggio
MimeMessage msg = new MimeMessage(session);
//...il mittente
msg.setFrom(new InternetAddress(sFrom));
//...i destinatari
InternetAddress[] address = {new InternetAddress(sTo)};
msg.setRecipients(Message.RecipientType.TO, address);
//...l'oggetto del messaggio
msg.setSubject(sSubject);
MimeBodyPart mbpf = new MimeBodyPart();
mbpf.setText(sMsg);
MimeBodyPart mbpl = new MimeBodyPart();
FileDataSource fds = new FileDataSource(sFile);
//...allego il file al messaggio
mbpl.setDataHandler(new DataHandler(fds));
mbpl.setFileName(fds.getName());
Multipart mp = new MimeMultipart();
mp.addBodyPart(mbpf);
mp.addBodyPart(fds);
msg.setContent(mp);
msg.setSentDate(new Date());
//...invio
Transport.send(msg);
}
catch(Exception e)
{
e.printStackTrace();
bEsito=false;
}
return bEsito;
}
}
Il metodo più semplice per utilizzare WordPress sul proprio computer è quello di utilizzare uno dei molti pacchetti autoinstallanti offerti gratuitamente sul Web.
Uno dei migliori, per pulizia dell’installazione e periodicità di aggiornamento, è Bitnami WordPress Stack che viene distribuito per Windows, Linux e Mac.
Bitnami WordPress Stack per Windows si scarica dalla seguente pagina, al di sotto della voce Native.
L’installazione è semplicissima, avviato il file e premuto Next nella schermata di benvenuto, si dovranno selezionare i componenti da installare: PhpMyAdmin, l’unica opzione deselezionabile, è un comodo gestore di database che può tornare utile in diverse occasioni. Nella finestra successiva, al momento di scegliere la cartella di destinazione, è bene indicarne una diversa da quella predefinita, più breve e che preferibilmente non preveda spazi nel nome.
Il nome utente scelto nella finestra successiva sarà utilizzato per creare l’account di amministrazione di WordPress, mentre la password sarà valida per amministrare anche il database MySQL (username: root) e PhpMyAdmin (username: administrator).
La quinta ed ultima finestra permette di impostare il nome del blog da creare e l’hostname del computer: in quest’ultima opzione è bene specificare non l’indirizzo lp ma il nome del computer; lo potete trovare facendo clic con il tasto destro, nel menu Start, su Computer e poi su Proprietà (in Windows Vista o 7) oppure su Risorse del computer -> Proprietà -> scheda Nome computer (in Windows XP).
Per impostare la lingua italiana manca un ultimo passaggio: aprite il file wp-config.php e modificate define (‘WPLANG; ‘en’) con la voce define (‘WPLANG’, ‘it_IT’).
Semplice, no?
Scritto il 12-01-2011 da Vito Antonio Bonardi
Pubblicato su : Programming
0
function valida_carattere(object){
//var iChars = "!@#$£%^&*()+=-[]\\\;,./{}|\":<>?òèéà ùì°§_";
var iChars =
"qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM’ ";
for (var i = 0; i < object.value.length; i++) {
//utilizzare questa riga se il controllo va sui caratteri speciali
//if (iChars.indexOf(object.value.charAt(i)) != -1) {
//alert ("i= "+i+" e carattere= "+object.value.charAt(i));
if (iChars.indexOf(object.value.charAt(i)) == -1) {
alert ("Il campo contiene caratteri speciali. I caratteri speciali verranno rimossi.");
object.value =
object.value.substring(0,i)+object.value.substring(i+1,object.value.length);
return false;
}
}
}
Scritto il 20-06-2009 da Vito Antonio Bonardi
Pubblicato su : Programming
0
Qualche giorno fa, mentre scrivevo una function Oracle (abbastanza complessa), mi son reso conto che una select all’interno della function non ritornava il risultato che mi aspettavo.
Eppure, eseguendo la query al difuori della function con gli stessi parametri, funzionava.
Dopo una serie di verifiche ho individuato il problema nella tipologia di parametro che passavo alla function. Io passavo un tipo VARCHAR2, il campo sul DB era definito CHAR, per questo la where condition falliva.
Questo perchè Oracle ha due metodi per comparare le stringhe:
• non-blank-padding (la lunghezza dei campi non viene resa uguale prima del confronto) quando almeno uno dei due elementi da comparare è VARCHAR2.
• blank-padding (il campo più corto viene riempito con spazi fino a raggiungere la lunghezza dell’altro prima di confrontarlo) quando entrambi gli elementi sono CHAR.
Inoltre ricordo che la “literal string” che io usavo esternamente (quella che funzionava) è sempre rappresentata internamente come datatype CHAR.
Scritto il 02-06-2009 da Vito Antonio Bonardi
Pubblicato su : Pensieri, Programming, Technology
0
Chi su questo blog ci capita spesso, da qualche giorno avrà notato il nuovo template.
In realtà questo che vedete non è il tema su cui stavo lavorando negli ultimi mesi (anche se è molto simile), ma dopo aver visto questo template, ho deciso di mettere da parte il lavoro fatto e ripartire da quello.
Dovrebbe esser ottimizzato per tutti i browser, ma sarei grato se qualcuno nota un problema e me lo segnali, su questo post o via email.
Nell’occasione ho installato anche WpTouch, un plugin per ottimizzare WordPress per iPhone/iPod Touch.
Scritto il 19-03-2009 da Vito Antonio Bonardi
Pubblicato su : Pensieri, Programming
2
Secondo me non hanno ben capito cosa cercano …
Ricerchiamo analista/programmatore Java in ambito Enterprise Edition, che abbia maturato una significativa esperienza nello sviluppo di soluzioni Web-oriented basate su piattaforma Java / J2EE, in particolare nel contesto dell’offerta applicativa DB2.
Scritto il 21-02-2009 da Vito Antonio Bonardi
Pubblicato su : Programming
0
Se vi capita, com’è successo a me poco fa, di chiudere accidentalmente la visualizzazione a tab su UltraEdit, sappiate che per ripristinarla è sotto:
View > View/Lists > Open File Tabs
Lo scrivo qui perchè stavo quasi impazzendo a cercare l’opzione giusta!
Scritto il 17-02-2009 da Vito Antonio Bonardi
Pubblicato su : Programming
4
Chi come me sviluppa software per il web, quotidianamente si trova ad affrontare problemi di compatibilità tra i vari browser.
Il problema che ho riscontrato in questi giorni, riguarda la funzione insertAdjacentHTML, metodo non standard di casa Microsoft (non è presente in ECMAscript).
Dopo una breve ricerca su google (santo google), ho trovato questa faq, che risolve il problema.
Ecco la soluzione:
if(typeof HTMLElement!="undefined" && !HTMLElement.prototype.insertAdjacentElement){
HTMLElement.prototype.insertAdjacentElement =
function(where,parsedNode)
{
switch (where){
case 'beforeBegin':
this.parentNode.insertBefore(parsedNode,this)
break;
case 'afterBegin':
this.insertBefore(parsedNode,this.firstChild);
break;
case 'beforeEnd':
this.appendChild(parsedNode);
break;
case 'afterEnd':
if (this.nextSibling)
this.parentNode.insertBefore(parsedNode,this.nextSibling);
else this.parentNode.appendChild(parsedNode);
break;
}
}
HTMLElement.prototype.insertAdjacentHTML = function(where,htmlStr)
{
var r = this.ownerDocument.createRange();
r.setStartBefore(this);
var parsedHTML = r.createContextualFragment(htmlStr);
this.insertAdjacentElement(where,parsedHTML)
}
HTMLElement.prototype.insertAdjacentText = function(where,txtStr)
{
var parsedText = document.createTextNode(txtStr)
this.insertAdjacentElement(where,parsedText)
}
}
function getObjInnerText(obj){
if (document.all)
{ // IE;
return obj.innerText;
}
else{
if (obj.textContent){
return obj.textContent;
}
}
Scritto il 10-02-2009 da Vito Antonio Bonardi
Pubblicato su : Programming, Technology
0
Circa un anno e mezzo fa, scrissi un post in cui parlavo di un problema che si era verificato sul mio tema, verificatosi aggiornando WordPress alla versione 2.2.1! Nello specifico, erano comparsi degli "0" accanto ai nomi del blogroll. Per mancanza di tempo (e di voglia), all’epoca non avevo cercato la soluzione del problema, anche se da una rapida lettura del codice avevo intuito che il problema era dovuto alla funzione wordpress get_linksbyname. Avevo completamente rimosso il problema, nonostante la mia "presenza" giornaliera sul blog. Oggi il problema mi è balzato agli occhi, ed ho quindi deciso di risolverlo. Dopo una rapida consultazione della guida di wordpress, ho risolto impostando a FALSE il parametro show_rating, che serve per indicare se devono essere visualizzati i caratteri o le stelle che mostrano il punteggio (TRUE) oppure no (FALSE).
p.s. Forse la correzione arriva in ritardo, il nuovo layout è in arrivo…
Scritto il 12-06-2008 da Vito Antonio Bonardi
Pubblicato su : Programming
0
Questo breve blocco di codice mostra come fare un loop sui record di una query utilizzando i cursori. Comodo quando si vogliono raggruppare in un campo i risultati di più record.
DECLARE @mycur CURSOR
DECLARE @test VARCHAR(10)
SET @mycur = CURSOR
FOR
SELECT mycolumn FROM mytable
OPEN @mycur
FETCH NEXT FROM @mycur INTO @test
WHILE @@FETCH_STATUS = 0
BEGIN
PRINT @test – sample statements
FETCH NEXT FROM @mycur INTO @test
END
DEALLOCATE @mycur
Scritto il 16-02-2008 da Vito Antonio Bonardi
Pubblicato su : Programming
0
Per verificare se una tabella in 2NF è anche in 3NF basta chiedersi in maniera spicciola: “Esiste un campo non chiave che dipenda funzionalmente da un altro campo non chiave?”.
Ecco una definizione più formale:
Uno schema R è in 3NF se ogni volta che in R vale X -> A e A non è X (dove X è un insieme di campi e A è un campo specifico), allora o X è una superchiave per lo schema oppure A è primario (cioè è una delle chiavi, visto che in uno schema possono eserci più chiavi).
Scritto il 09-11-2007 da Vito Antonio Bonardi
Pubblicato su : Programming
4
Venerdì 23 Novembre 2007 si terrà a Bologna il quarto Italian Agile Day. L’Italian Agile Day è una conferenza gratuita di un giorno dedicata alle metodologie Agili per lo sviluppo e la gestione dei progetti software come eXtreme Programming, SCRUM, Feature Driven Development, DSDM, Crystal e Lean Software Development aderenti all’Agile Manifesto.
La conferenza si rivolge agli sviluppatori software, project leaders, IT managers, tester, architetti e coach che hanno esperienze da condividere o che iniziano solo ora ad interessarsi a queste tematiche. Sarà una grande opportunità per scambiarsi idee e condividere esperienze. Il focus della giornata è la conoscenza pratica, le esperienze sul campo e un attivo coinvolgimento di tutti i partecipanti. L’evento è organizzato dall’ Italian Agile Movement che festeggia 5 anni di attività.
L’Italian Agile Day 2007 si terra’ presso il Centro Congressi Hotel Savoia Regency, via del Pilastro 2 Bologna.
Per maggiori informazioni: www.agileday.it
Come ripristinare i messaggi di testo (SMS) su iPhone (iTunes senza Jailbreak).