Buongiorno a tutti,
premetto che è la prima volta che affronto Ajax, e scrivo qui perchè non sono riuscito a trovare nulla che mi aiutasse.
Quadro generale:
ho un form che tra le altre voci permette all'utente di selezionare il codice della lezione che vuole acquistare.
Vorrei che quando l'utente inserisce il codice della lezione il campo "prezzo della lezione" venisse popolato interrogando il db delle lezioni da cui estrarre il relativo prezzo.
Credevo fosse una cosa semplice per incominciare a familiarizzare con Ajax, ma non mi riesce di farlo funzionare!
Il form è il seguente:
Lo script richiamato dal campo id_lezione:
Il codice php contenuto nella pagina corri.php:
Quando inserisco il codice di una lezione il valore del campo "pagato" mi si azzera... In pratica, come faccio a inserire il valore di $costo nel form?
So di aver saltato qualcosa di fondamentale, ma non so cosa.
Grazie per l'aiuto!
premetto che è la prima volta che affronto Ajax, e scrivo qui perchè non sono riuscito a trovare nulla che mi aiutasse.
Quadro generale:
ho un form che tra le altre voci permette all'utente di selezionare il codice della lezione che vuole acquistare.
Vorrei che quando l'utente inserisce il codice della lezione il campo "prezzo della lezione" venisse popolato interrogando il db delle lezioni da cui estrarre il relativo prezzo.
Credevo fosse una cosa semplice per incominciare a familiarizzare con Ajax, ma non mi riesce di farlo funzionare!
Il form è il seguente:
HTML:
<form method="post" name="modulone" target="_blank">
Nome*: <input name="nomecliente" type="text" size="35" />
Cognome*: <input name="cognomecliente" type="text" size="35" /> <br><br>
Telefono: <input name="telefono" type="text" />
Email*: <input name="email" type="text" /> <br><br>
ID Lezione regalata (OPZIONALE**): <input name="id_lezione" type="text" size="4" onChange="prendiprezzo(this.value)"><br><br>
Numero posti (OPZIONALE): <input name="postiprenotati" type="text" size="3" value="1"><br><br>
Importo del buono*: Euro <input id="idid" name="pagato" type="text" size="4" value="80" /> , <input name="decimali" type="text" size="2" value="00"><br><br>
Destinatario del regalo*: <br>
Nome <input name="destinatario" type="text" size="35" /> Cognome <input name="cognomedestinatario" type="text" size="35" /> <br><br>
<div id="bottcontinua" style="display: block">
<p align="center"><input type="button" name="continua" value=" CONTINUA " onClick="Modulo()" style="color: red;"></p>
</form>
Lo script richiamato dal campo id_lezione:
Codice:
// QUI GESTISCO LA RICHIESTA ASINCRONA CON AJAX
var xmlhttp;
function prendiprezzo(str) {
xmlhttp = GetXmlHttpObject();
if (xmlhttp == null) {
alert ("Il browser non supporta le richieste HTTP");
return;
}
var url="corri.php";
url = url+"?q="+str;
xmlhttp.onreadystatechange=stateChanged;
xmlhttp.open("GET",url,true);
xmlhttp.send(null);
}
function stateChanged() {
if (xmlhttp.readyState==4) {
document.getElementById("idid").value = xmlhttp.responseText;
}
}
function GetXmlHttpObject() {
if (window.XMLHttpRequest) {
return new XMLHttpRequest();
}
if (window.ActiveXObject) {
return new ActiveXObject("Microsoft.XMLHTTP");
}
return null;
}
PHP:
<?
$q = $_GET['q'];
include 'connect.php';
$query = ("SELECT * FROM calendario WHERE id_lezione = '$q'");
$risultato = mysql_query($query);
$riga = mysql_fetch_array($risultato);
$costo = $riga['euro'];
So di aver saltato qualcosa di fondamentale, ma non so cosa.
Grazie per l'aiuto!