collegare ajax con php

step_over

Nuovo Utente
26 Nov 2012
21
0
0
salve ragazzi, dopo aver seguito un tutorial ho capito come poter utilizzare php tramite ajax, ma quello che mi rimane ancora sconosciuto è come poter avere i risultati senza dover ricaricare la pagina perchè per ora ho trovato solo esempi che mi salvavano i risultati in un file di testo. è possibile avere i risultati senza usare file di testo? tipo come succede per le funzioni che volendo ti restituiscono i risultati come variabili
 

alessandro1997

Utente Attivo
6 Ott 2009
5.302
1
0
23
Roma
alessandro1997.netsons.org
Per recuperare il contenuto di uno script PHP senza ricaricare la pagina bisogna fare esattamente come faresti con un file di testo:
HTML:
<!DOCTYPE html>
<html lang="it">
	<head>
		<title>AJAX</title>
		<meta charset="utf-8" />
	</head>

	<body>
		<div id="response"></div>

		<script type="text/javascript" src="http://code.jquery.com/jquery-1.8.3.min.js"></script>
		<script type="text/javascript">
		$(function() {
			$.getJSON("ajax.php", function(data) {
				$("#response").html(data.response);
			});
		});
		</script>
	</body>
</html>
E nel file ajax.php:
PHP:
<?php
$data = array(
	'response' => 'Contenuto...',
);

echo json_encode($data);
 

step_over

Nuovo Utente
26 Nov 2012
21
0
0
mi sa che mi sono spiegata male... io in realtà ho una pagina php dove dentro a una funzione javascript devo fare una select sul database per fare un controllo... di conseguenza a me il risultato mi servirebbe nella pagina principale in php senza doverla ricaricare... come posso fare? o_O
 

step_over

Nuovo Utente
26 Nov 2012
21
0
0
certo...

il form da dove prendo i parametri
HTML:
NUMERO FATTURA
<input type="text" name="numfatt" size="4" value="" onChange="controlla();"> <br>
DATA FATTURA
<input type="text" name="datafatt" size="10" onchange="data();">

la funzione controlla

HTML:
<script language="javascript">

function controlla (){
var numero = document.form1.numfatt.value;
var data = document.form1.datafatt.value;
	//controllo se tutte e due i campi sono pieni
	if (numero != null && data != null) {
	var datePat = /^(\d{1,2})(\/|-)(\d{1,2})(\/|-)(\d{4})$/;
	var matchArray = dateStr.match(datePat); // is the format ok?
	var anno = matchArray[5];

	//qua devo inserire la select php che controlla sul database se la fattura esiste o meno

		if (con == 1) {
		window.alert("la fattura esiste gia");
		}else 
		{window.alert ("la fattura none esiste"); 
		}
	}
}
</script>

questa sarebbe la select che mi interesserebbe inserire nella funzione javascript
PHP:
$sqlstr="SELECT  * FROM testata WHERE AnnoFattura= $data && NumeroFattura = &num ";
	$risultato=mysql_query($sqlstr);
		if ($risultato){
		return 1;
		}else {
		return 0; }
 

alessandro1997

Utente Attivo
6 Ott 2009
5.302
1
0
23
Roma
alessandro1997.netsons.org
Puoi fare in questo modo.

Pagina del form:
HTML:
<!DOCTYPE html>
<html lang="it">
  <head>
    <title>Controllo AJAX</title>
    <meta charset="utf-8" />
  </head>

  <body>
    <form method="post" action="#" id="form">
      <div>
        <label for="annoFattura">Anno fattura:</label>
        <input type="text" name="annoFattura" id="annoFattura" />
      </div>

      <div>
        <label for="numeroFattura">Numero fattura:</label>
        <input type="text" name="numeroFattura" id="numeroFattura" />
      </div>

      <div>
        <button type="submit">Invia</button>
      </div>
    </form>

    <script type="text/javascript" src="http://code.jquery.com/jquery-latest.min.js"></script>
    <script type="text/javascript">
    $(function() {
      $("#form").submit(function() {
        $.getJSON("check.php", {
          'annoFattura':   $("#annoFattura").val(),
          'numeroFattura': $("#numeroFattura").val()
        }, function(data) {
          if (data.result) {
            alert("La fattura esiste.");
          } else {
            alert("La fattura non esiste.");
          }
        });
      });
    });
    </script>
  </body>
</html>
Pagina check.php:
PHP:
<?php
$annoFattura   = isset($_POST['annoFattura'])   ? trim($_POST['annoFattura'])   : '';
$numeroFattura = isset($_POST['numeroFattura']) ? trim($_POST['numeroFattura']) : '';

$sql = 'SELECT * FROM testata WHERE AnnoFattura = %d AND NumeroFattura = %d';
$sql = sprintf($sql, $annoFattura, $numeroFattura);

$query = mysql_query($sql) or die(mysql_error());

return json_encode(array(
  'result' => (mysql_num_rows($query) > 0),
));
 

step_over

Nuovo Utente
26 Nov 2012
21
0
0
grazie mille.. ma non e possibile parlo passando da una funzione javascript? o cmq senza il pulsante?
 

step_over

Nuovo Utente
26 Nov 2012
21
0
0
l'evento è quando l'utente inserisce il numero di fattura o la data.. per la data c'e gia una funzione che controlla se la data inserita è valida e alla fine di quella se è tutto a posto sarà gia la funzione a richiamare. vi posto la funzione che controlla la data

HTML:
<script language="javascript">
function data(dateStr) {

if (dateStr.length != 10) {
alert("Si prega di inserire la data sia come mm / gg / aaaa o gg-mm-aaaa.");

return false;
}
var datePat = /^(\d{1,2})(\/|-)(\d{1,2})(\/|-)(\d{4})$/;
var matchArray = dateStr.match(datePat); // is the format ok?

if (matchArray == null) {
alert("Si prega di inserire la data sia come mm / gg / aaaa o gg-mm-aaaa.");

return false;
}

day = matchArray[1]; // [email protected] date into variables
month = matchArray[3];
year = matchArray[5];

if (month < 1 || month > 12) { // check month range
alert("Il mese deve essere compreso tra 1 e 12.");
return false;
}

if (day < 1 || day > 31) {
alert("Giorno deve essere compreso tra 1 e 31.");
return false;
}

if ((month==4 || month==6 || month==9 || month==11) && day==31) {
alert("il mese "+month+" non ha 31 giorni!")
return false;
}

if (month == 2) { // check for february 29th
var isleap = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0));
if (day > 29 || (day==29 && !isleap)) {
alert("il mese febbraio " + year + " non ha " + day + " giorni!");
return false;
}
}
return true;
controlla (); // se l data è valida richiama la funzione
}

</script>
 

alessandro1997

Utente Attivo
6 Ott 2009
5.302
1
0
23
Roma
alessandro1997.netsons.org
La tua funzione viene eseguita quando il valore del campo cambia. In questo caso una soluzione simile non è fattibile perché, per ogni valore eseguito, verrebbe effettuata una richiesta HTTP che rallenterebbe l'esecuzione. Io suggerisco di eseguire il controllo all'invio del form ed eventualmente quando l'elemento #numeroFattura perde il focus.
 

Longo8

Utente Attivo
28 Mar 2011
1.694
0
36
Io suggerisco di eseguire il controllo all'invio del form ed eventualmente quando l'elemento #numeroFattura perde il focus.
Cioè dovresti utilizzare onblur per quell'elemento e magari un controllo totale sempre con ajax quando viene inviato il submit oltre al controllo lato server (PHP).
 
Discussioni simili
Autore Titolo Forum Risposte Data
M Collegare due segmenti di rete diversi Reti LAN e Wireless 0
G Collegare Modem 4G Zyxel LTE4506 a rete LAN Reti LAN e Wireless 1
L Collegare un form html ad un database access Javascript 2
xone [Offro] Realizzazione landing page da collegare a Facebook ads Offerte e Richieste di Lavoro e/o Collaborazione 2
P App per collegare android ad un sito web Sviluppo app per Android 3
M Collegare due NVR nella stessa rete IP Cam e Videosorveglianza 0
R Collegare Range Exender tramite cavo ethernet direttamente al modem Reti LAN e Wireless 6
romeocharly come collegare un id di mysql con un file specifico PHP 5
romeocharly Creare un script/codice in php per collegare un id mysql con un file PHP 0
M collegare tasti radio con e mail PHP 4
ecosito Collegare un modulo contatti PHP su un modulo contatti HTML HTML e CSS 1
C Come collegare una pagina ad un bottone su mit app inventor Presentati al Forum 1
A Come collegare i valori di due caselle di una maschera MS Access 0
M Collegare 3 tabelle PHP 8
K Collegare rete domestica a modem webpocket 42 Reti LAN e Wireless 1
filippino Collegare pagina Google+ al sito web. Google+ 1
M collegare immagini a report MS Access 1
C Info wifi collegare dispositivi apple Windows e Software 1
Z Collegare canale youtube a pagina Google+ Google+ 0
L Collegare un virus VBScript a un link?? Sicurezza e Virus 0
Gioweb [risolto] Modo migliore per collegare sito esterno al database PHP 4
braccobaldo Collegare Canale Youtube ad una pagina Fan di Facebook YouTube 1
N Collegare IP cam in rete con forwarding IP Cam e Videosorveglianza 1
P Posso collegare un $_POST a una veriabile? Aiuto PHP 6
D Ati HD 7750 collegare 2 monitor? Hardware 2
P Collegare un domio con uno spazio web Hosting 3
R Collegare tabella mysql di aruba ad una pagina php PHP 6
S Collegare 2 funzioni javascript Javascript 2
F Collegare la registrazione del sito a quella del forum phpBB 1
G collegare funziona javascript da html Javascript 3
L Collegare database a Jquery Ui Tabs PHP 0
F integrare/collegare twitter al proprio sito PHP 1
M Come collegare un pc con la lan ad un pc collegato con la wifi tramite usb Reti LAN e Wireless 5
C Collegare i dati inseriti in un body di un html ad un file .js Javascript 33
Frank10 Collegare php con html PHP 7
I collegare dreamweaver a database sql HTML e CSS 1
B collegare telecamera a media player Javascript 0
V problema per collegare tabelle MySQL 2
P Collegare twitter a facebook Discussioni Varie 4
K Collegare Pc fisso a un router wi-fi Reti LAN e Wireless 1
A Collegare clipfilmato Flash 0
renoir09 Collegare post da profilo facebook su altro sito SEO e Posizionamento 1
O Problemi con MAMP OS X non riesco a collegare dreamweaver al database PHP 0
K ecommerce: collegare software gestione magazzino al sito Discussioni Varie 1
T come collegare un FORM MAIL HTML e CSS 3
C collegare un db access ad un file asp Classic ASP 2
W collegare Dreamweaver MX con database Database 1
A collegare le pagine di un sito Webdesign e Grafica 3
F collegare flash con php attraverso input text (as3) Flash 1
B collegare un utente ad un ordine PHP 0

Discussioni simili