Variazione di un campo input in base al contenuto di un altro campo input inserito dall'utente

gandalf1959

Utente Attivo
21 Nov 2013
208
1
18
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:
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;
}
Il codice php contenuto nella pagina corri.php:
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'];
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!
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
Ciao,cosi a naso hai dimenticato di mandare in output il risultato php
PHP:
echo $costo;
non ho guardato il resto del codice quindi potrebbe non essere l'unico problema
 

marino51

Utente Attivo
28 Feb 2013
3.041
192
63
Lombardia
confermo quanto detto da criric, con l'aggiunta che, ho guardato il resto del codice e funziona,

se vuoi fare un po' di debug, modifica così,

PHP:
      function prendiprezzo(str) {
	alert("The input value has changed. The new value is: " + str);

	xmlhttp = GetXmlHttpObject();

PHP:
      function stateChanged() {
	if (xmlhttp.readyState==4) {
		var myData = xmlhttp.responseText;
		alert("The seminar cost is: " + myData);
		document.getElementById("idid").value = myData;
	}
      }

PHP:
<?php
ini_set('log_errors', 1);
ini_set('error_log', 'corri.log');

$q = $_GET['q']; 

error_log("message : ".$q, 0);

/*
include 'connect.php'; 

$query = ("SELECT * FROM calendario WHERE id_lezione = '$q'"); 
$risultato = mysql_query($query); 
$riga = mysql_fetch_array($risultato); 
$costo = $riga['euro'];
echo $costo;
*/

$costo = 103;
error_log("costo : ".$costo, 0);
echo $costo;
?>

e guarda il log 'corri.log'
 
Ultima modifica:

gandalf1959

Utente Attivo
21 Nov 2013
208
1
18
Ciao,cosi a naso hai dimenticato di mandare in output il risultato php
PHP:
echo $costo;
non ho guardato il resto del codice quindi potrebbe non essere l'unico problema

Classico errore stupido da neofita frettoloso...
GRAZIE, ora funziona. Adesso meto un controllo nel caso l'utente sbagli il codice della lezione e poi il form è pronto (questo lo so fare...).
Alla prossima
 
Discussioni simili
Autore Titolo Forum Risposte Data
G [HTML] Variazione di posizione di un tag <a> a passaggio del mouse di un altro tag <a> HTML e CSS 12
V inserimento e variazione di una tabella mysql PHP 1
N Select concatenate Regioni-Province (con Variazione) Javascript 7
N Select concatenate Regioni-Province-Comuni (con Variazione) Javascript 14
G Variazione del colore di sfondo di un link al passaggio mouse Javascript 5
P Variazione e personalizzazione dei mime Hosting 2
D Visualizzazione pagina basata sul valore di un campo del database PHP 2
A pulsante di update campo mysql con javascript Javascript 2
M Creare un campo input select quantità di un numero intero prelevato dal db PHP 3
D riempire campo inserendo un valore in un altro campo PHP 2
S riflettere valore di campo input range in live Javascript 0
P Ricerca campo data PHP 1
M Aggiornare stesso campo in due tabelle PHP 0
U Campo vuoto data errore Fatal error: PHP 2
Alex_70 Aggiornare campo da un altro campo PHP 16
F Steps campo input field Javascript 1
N Chiave Primaria in Campo Calcolato Windows e Software 1
I Focus su un campo Javascript 9
Alex_70 Nascondere label tab se campo vuoto PHP 2
G Impostare suggerimenti campo text di un form Javascript 2
Shyson Inserire placeholder nel campo cerca PHP 5
B Campo ricerca domini HTML e CSS 4
D verifica codice fiscale persona fisica /aziendale stesso campo HTML e CSS 1
G Campo Not null a condizione MySQL 8
M [PHP] Compilare automaticamente il campo data PHP 5
M [PHP] Problemi di salvataggio su campo calcolato PHP 0
M [PHP] Salvare campo di una tabella in una variabile PHP 14
M [MySQL] CREARE UN LINK SU UN DETERMINATO CAMPO DI UNA TABELLA RISULTATO DI UNA QUERY SQL MySQL 3
D [ASP] Leggere Campo decimal MYSQL Classic ASP 1
S [ASP] SALVARE VALORE SELECT OPTION SU CAMPO TABELLA ACCESS Classic ASP 9
M [PHP] Drop down in campo select PHP 1
elpirata [RISOLTO][Javascript] Datapicker e autocompletamento campo input Javascript 2
elpirata [RISOLTO][Mysql] Contare le occorrenze in un campo tipo varchar MySQL 2
elpirata [MYSQL] Schedulare evento per update del campo data su tabella MySQL 0
G Campo HTML input file con jQuery jQuery 0
D [MS Access] problemi con inserimento campo in una maschera MS Access 6
Arcadia [MS Access] Focus su campo specifico MS Access 1
A [MS Access] Pulsante per inserire allegati in campo maschera MS Access 0
L [Javascript] Drag and drop. Aggiornamento Campo Javascript 2
A [MySQL] Ottenere più risultati in un unico campo MySQL 7
A [MS Access] Somma Campi se in altro campo presente un determinato testo MS Access 1
Monital [PHP]Far riconoscere stringa o numerico epr creazione campo tabella PHP 6
Monital Funzione php e campo database come variabile PHP 6
C [PHP] Creare un Pulsante che ricopia valori di un campo in altro record PHP 4
G [Javascript] Campo a comparsa di select Javascript 0
A [Javascript] Somma di un campo in una tabella dinamica Javascript 0
L [PHP] case then e campo non riconosciuto PHP 0
A [PHP] Modificare campo database in base alla scelta dell'utente PHP 2
C [PHP] Estrapolare solo l'anno da una data di nascita inserita in un campo PHP 8
Store creazione campo search in php PHP 1

Discussioni simili