Programmatore PHP esperto nella realizzazione di Scipt AJAX e nella costruzione di applicazioni asincrone che interagiscono con database MySQL | Realizzazione Siti Dinamici in PHP / AJAX / MySQL
Selezione Dinamica da Database con AJAX e PHP
Scritto da: Daniele Tabacco | Categoria: Programmatore AJAX|commenti Commenti: (0)

In questo Articolo presenterò un brevissimo ma efficacissimo esempio di realizzazione di uno script AJAX e PHP con un interazione con database MySQL tecnologie utili ad un Programmatore PHP per la realizzazione di siti dinamici.

Con quest'esempio simuleremo la selezione di una scheda di un dipendente all'interno di un database MySQL, tali dati verranno estrapolati utilizzando PHP e ovviamente un Programmatore PHP potrà ampliare o sfruttare tale script per la realizzazione di elementi ben più complessi.

Lo script è composto banalmente da 2 file, uno è il file principale che viene richiamato dal server e che sarà la maschera che l'utente vedrà sempre visibile, mentre il secondo lavorerà in maniera asincrona in background per l'aggiornamento dei dati utilizzando Javascript e AJAX

Potete esaminare il funzionamento di questo Script QUI

Per rendere chiaro l'esempio per prima cosa descriviamo il semplice DB MySQL utilizzato in questo esempio:

Adesso eseminiamo il file che si occupa di chiamare la funzione mostraInfo responsabile degli aggiornamenti asincroni AJAX:

<script type="text/javascript">
var xmlhttp;

function mostraInfo(str)
{
xmlhttp=GetXmlHttpObject();
if (xmlhttp==null)
{
alert ("Browser does not support HTTP Request");
return;
}
var url="mostra_utenti.php";
url=url+"?q="+str;
url=url+"&sid="+Math.random();
xmlhttp.onreadystatechange=stateChanged;
xmlhttp.open("GET",url,true);
xmlhttp.send(null);
}

function stateChanged()
{
if (xmlhttp.readyState==4)
{
document.getElementById("info").innerHTML=xmlhttp.responseText;
}
}

function GetXmlHttpObject()
{
if (window.XMLHttpRequest)
{
// code for IE7+, Firefox, Chrome, Opera, Safari
return new XMLHttpRequest();
}
if (window.ActiveXObject)
{
// code for IE6, IE5
return new ActiveXObject("Microsoft.XMLHTTP");
}
return null;
}
</script>

<form>
Seleziona Dipendente:
<select name="users" onChange="mostraInfo(this.value)">
<?php
//Seleziono quelli che sono i dipendenti
$connessione = mysql_connect('xxxx', 'xxxx', 'xxxx');
mysql_select_db("xxxx", $connessione);
$query = "SELECT * FROM `dipendenti` ORDER BY nome ASC";
$result = mysql_query($query);
while($riga = mysql_fetch_array($result)){
echo "<option value='$riga[id]'>$riga[nome] $riga[cognome]</option>";
}
?>
</select>
</form>
<br />
<div id="info"></div>

La funzione mostraInfo si occupa di creare l'oggetto XMLHTTP e richiama il file creato con PHP che effettua la selezione delle informazioni che il Programmatore PHP intende portare all'attenzione dell'utilizzatore dello script.

Il secondo file è quello richiamato dallo script principale e che effettua una richiesta al server per l'aggiornamento delle informazioni, tale file non verrà mai visualizzato dall'utente che ne otterrà solo gli aggiornamenti:

<?php
$q=$_GET["q"];

$con = mysql_connect('xxxx', 'xxxx', 'xxxx');
mysql_select_db("xxxx", $con);

$sql="SELECT * FROM dipendenti WHERE id = '".$q."'";

$result = mysql_query($sql);

echo "<table border='1'>
<tr>
<th>Nome</th>
<th>Cognome</th>
<th>Anni</th>
<th>Lavoro</th>
<th>Stipendio</th>
</tr>";

while($row = mysql_fetch_array($result))
{
echo "<tr>";
echo "<td>" . $row['nome'] . "</td>";
echo "<td>" . $row['cognome'] . "</td>";
echo "<td>" . $row['anni'] . "</td>";
echo "<td>" . $row['lavoro'] . "</td>";
echo "<td>" . $row['stipendio'] . "</td>";
echo "</tr>";
}
echo "</table>";

mysql_close($con);
?>

Commenti:
implementazione
Marco - Inserito il: 20/05/10
Ciao, si potrebbe fare a due scelte? Che si possa scegliere prima A, poi B e a quel punto visualizzare i dati? Potresti scrivere tale implementazione? Grazie
Semplice
Daniele Tabacco - Inserito il: 20/05/10
Non occorre fare un implementazione nuova, bastano semplicemente pochissime correzioni all'attuale script, facendo passare alla funzione che estrapola i dati più valori. Spero di averti aiutato.
refresh
Dogo - Inserito il: 27/05/10
E come si può modificare per aggiornare le info mostrate automaticamente ogni tot secondi? Oppure aggiornare le info mostrate quando il risultato della query cambia... ciao e complimenti per l'articolo
Non ho capito
Daniele Tabacco - Inserito il: 27/05/10
Potresti dirmi meglio cosa intendi? cosa vuoi che lo script faccia?
implementazione
Marco - Inserito il: 31/05/10
ho sostituito il nome con MARCA, il cognome con MODELLO. Vorrei che scegliendo MARCA uscisse una seconda tendina per la scelta del modello e solo dopo il risultato. Devo comunque far passare alla funzione che estrapola i dati più valori ? Grazie
scelta a due campi
marco - Inserito il: 05/07/10
Ciao, potresti scrivere quelle due righe in più per la scelta dei due campi? Sempre con lo stesso tipo di DB. Grazie
Dati automatici
Francesco - Inserito il: 29/07/10
E per fare in modo che ogni tot secondi lo script mostri i dati seguenti nel database?



(non visibile)







Captcha
Copia i caratteri che vedi sopra:

Tags: | torna su


linkedIn


Contattami su Skype:
Il mio stato

Archivio Articoli:

Cerchi un Programmatore PHP con esperienza consolidata, già molte aziende a Napoli, Milano, Roma e Ferrara si sono affidate a me. Contattami per una Consulenza Gratuita, per Realizzare Applicazioni Web o Sviluppare Siti Internet e Creare Portali Dinamici.

Risorse utili per PHP:


Partners & Consigliati:

NGMWeb Hosting & Servizi

MioMotore Directory Gratis

ADServer Gestione Banner

MiniSito Ottimizzato NGMWeb.net



Collaborazioni:


antoniomaresca


ngmweb


cocreando
 
Daniele Tabacco - Questo sito e' interamente realizzato da me secondo gli standard del W3C - css valido w3c css valido xhtml