JavaScript » Articoli » JQuery
di: Alberto Bottarini 14 Gennaio 2008
<?php
if(!isset($_POST['name']) || strlen(trim($_POST['name'])) == 0 ) {
$error = "No name defined";
} elseif(!isset($_POST['note']) || strlen(trim($_POST['note'])) == 0 ) {
$error = "No note defined";
} elseif(!isset($_POST['user']) || strlen(trim($_POST['user'])) == 0 ) {
$error = "No user defined";
} elseif(!isset($_POST['priority']) || strlen(trim($_POST['priority'])) == 0 ) {
$error = "No priority defined";
} elseif(!isset($_POST['project_id']) || strlen(trim($_POST['project_id'])) == 0 ) {
$error = "No project_id defined";
} elseif($_POST['priority'] != 1 && $_POST['priority'] != 0) {
$error = "Wrong priority code";
} else {
$query = "SELECT * FROM projects WHERE id = '".mysql_real_escape_string($_POST['project_id'])."'";
$result = mysql_query($query) or die(mysql_error());
$count = mysql_num_rows($result);
if($count == 0) $error = "No project with id ".$_POST['id'];
elseif($count > 1) $error = "More than project task with id ".$_POST['id'];
else {
$query = "INSERT INTO tasks(project_id, name, note, user, priority, startdate) VALUES('".
$_POST['project_id']."','".
mysql_real_escape_string(htmlentities($_POST['name']))."','".
mysql_real_escape_string(htmlentities($_POST['note']))."','".
mysql_real_escape_string(htmlentities($_POST['user']))."','".
$_POST['priority']."',NOW())";
mysql_query($query) or die(mysql_error());
$last_id = mysql_insert_id();
$query = "SELECT * FROM tasks WHERE id = '".$last_id."'";
$result = mysql_query($query) or die(mysql_error());
$task = mysql_fetch_assoc($result);
}
}
?>
<?php if(!isset($error)) : ?>
<task>
<?php foreach($task as $key => $value) : ?>
<?php if(!is_null($value)) : ?>
<<?php echo $key; ?>><?php echo utf8_encode($value); ?></<?php echo $key; ?>>
<?php endif; ?>
<?php endforeach; ?>
</task>
<?php endif; ?>
L'azione presenta rispetto alla precedente un più complesso processo di validazione sui diversi parametri necessari all'esecuzione dell'azione. Da notare l'utilizzo delle funzioni mysql_real_escape_string() e htmlentities() per armonizzare il contenuto delle stringhe con il salvataggio su database (aggiunta di eventuali slash e conversione di caratteri HTML).
La tecnica di dispatcher utilizzata dalla componente server-side è un aspetto molto interessante e avrebbe meritato sicuramente più attenzione di quella fornita in questo articolo che pone il focus sulla componente client-side.
Come per tutte le applicazioni sviluppate con scopi didattici, l'attenzione non viene posta su alcuni aspetti come l'aspetto grafico o la ricchezza di interazioni con l'utente, ma sull'aspetto formativo e sulla pulizia e chiarezza del codice.
Si sono affrontate diverse tecniche di sviluppo, dall'utilizzo di un framework completo come JQuery (argomento portante dell'articolo), al design di un pattern di sviluppo client-side, all'utilizzo di un'architettura basata su dispatcher per quanto concerne l'aspetto server-side. Giustamente i fari sono stati puntati verso ciò che doveva essere il tema dell'articolo, quindi l'integrazione di una applicazione con un framework applicativo, ma spero di aver suscitato nei lettori l'interesse anche verso altre tematiche e verso dei metodi di sviluppo a prima vista più complessi e forse "scomodi" ma che garantiscono stabilità, sicurezza e manutenibilità anche in applicazioni medio-grandi.
Ricordo che per discutere su tutti gli aspetti affrontati nel tutorial è stato aperto un thread sul forum di HTML.it: per discutere, proporre idee e chiedere maggiori spiegazioni in maniera condivisa. Per una dimostrazione dell'applicazione si può fare riferimento a questa pagina, mentre da qui è possibile scaricare i sorgenti. Il prossimo articolo dedicato a JQuery riguarderà una delle sue caratteristiche fondamentali non ancora affrontate: l'estendibilità tramite plugin! Alla prossima!
Guida Node.jsIl framework che permette di per usare V8, l'interprete JavaScript... |
Canvas, guida ai frameworkCanvas, tra gli elementi di HTML5 è forse quello di maggior impatto.... |
Guida jQuery UICreare siti ricchi e dinamici con jQuery UI, il progetto ufficiale... |
Ogni martedì, direttamente nella tua e-mail: guide, articoli, script, novità e approfondimenti tecnici su JavaScript.
Iscriviti alla newsletter
|
|
Corso Webmaster base18 Giugno 2012 a Milano |
|
|
Corso Google AdWords Base25 Giugno 2012 a Milano |
|
|
Corso JQuery e Ajax per Webmaster03 Luglio 2012 a Milano |
|
|
Corso Google AdWords Base05 Giugno 2012 a Roma |
|
|
Corso Webmaster base11 Giugno 2012 a Roma |