Caricare una pagina da uno script PHP

M@rco

Nuovo Utente
17 Nov 2010
8
0
0
Ciao a tutti,

ho uno script scritto in php che riceve dati da un form HTML (chiamerò la pagina pagina1) tramite AJAX (uso il metodo post). Esso confronta i dati ricevuti con i rispettivi dati presenti in un DB; in pratica se non dovesse esserci una corrispondenza devo ricaricare la pagina1 e far apparire un div che in precedenza era nascosto che informa l'utente degli errori commessi in fase di inserimento dati. Il mio problema sorge all'atto del redirect su pagina1....in pratica, eseguito tutto il controllo sul DB, vorrei ricaricare pagina1 sul browser ma non ci riesco. Avete idee?

Questo è il codice che effettua il controllo sul database:

Codice:
<?php
	header("location: ../reg_user/prenota2.php?prenota=2");
	session_cache_limiter('nocache');
	session_start();
	
	//se cerco di caricare home_user.php senza essere loggato
	//reindirizzo il browser sull'index.html
	if($_SESSION['level'] != 2 && $_SESSION['level'] != 3 && $_SESSION['level'] != 4){
		header("location: ../public/home.php?alert=2");
	}
	
	include("../include/connect.php");
	
	//connessione al db
	$conn=mysql_connect($HOST, $USER, $PASSWORD) or die("IMPOSSIBILE COLLEGARSI AL SERVER");
	
	//seleziona il db
	mysql_select_db($DB,$conn) or die("Impossibile connettersi al database $DB");
	
	$prov = $_POST['prov'];
	$città = $_POST['citta'];
	
	// se cerco di accedere alla pagina dalla barra di indirizzi reindirizzo l'utente sulla home
	if($prov == "" && $città == ""){
		header("location: ../index.html");
		exit;
	}
	
	if($prov != ""){
		$sql="SELECT * FROM province WHERE sigla='$prov'";
		$result = mysql_query($sql);
		if (mysql_num_rows($result) == 0){
			// la provincia non esiste...
			// ricarico la pagina, passandogli tutti i campi riempiti in precedenza dall'utente
			// e facendo uscire un div che evidenzia gli errori fatti
			//come faccio?? ho già provato con header("location: ecc ecc..");
		}
	} elseif ($città != ""){
		//da completare
	  }
	//chiude la connesisone con il db	
	mysql_close($conn);
?>
 

alessandro1997

Utente Attivo
6 Ott 2009
5.302
1
0
26
Roma
alessandro1997.netsons.org
Devi usare Javascript per farlo, perché non puoi usare gli header per effettuare un redirect se la pagina viene chiamata tramite AJAX. Ti consiglio di stampare 1 se c'è corrispondenza nel database, e 0 se non c'è. Poi tramite Javascript controlli la risposta della pagina. Se equivale a 0, allora esegui il refresh.

Per quanto riguarda il div nascosto con gli errori, basta semplicemente creare un div con la proprietà CSS display uguale a none. Poi fai la stessa cosa: controlli la risposta della pagina PHP. Se è uguale a 0 cambi la proprietà CSS e la fai diventare block, o quello che meglio si adatta al layout.
 

M@rco

Nuovo Utente
17 Nov 2010
8
0
0
Devi usare Javascript per farlo, perché non puoi usare gli header per effettuare un redirect se la pagina viene chiamata tramite AJAX. Ti consiglio di stampare 1 se c'è corrispondenza nel database, e 0 se non c'è. Poi tramite Javascript controlli la risposta della pagina. Se equivale a 0, allora esegui il refresh.

Per quanto riguarda il div nascosto con gli errori, basta semplicemente creare un div con la proprietà CSS display uguale a none. Poi fai la stessa cosa: controlli la risposta della pagina PHP. Se è uguale a 0 cambi la proprietà CSS e la fai diventare block, o quello che meglio si adatta al layout.

Perfetto, i div li avevo già impostati...concettualmente ci sono, il mio dubbio era proprio sulla funzione header, grazie x averlo fugato. Quindi ora faccio una funzione js che chiamo alla fine dello script php che mi ricarica la pagina...giusto??
 

M@rco

Nuovo Utente
17 Nov 2010
8
0
0
Ah capito...non sono molto pratico di AJAX, è la prima funzione che scrivo. Ecco il codice della funzione:

Codice:
//controlProv controlla che la provincia inserita sia corretta...
			function controlProv(prov){
				//converto l'input tutto in maiuscolo per evitare il controllo su Roma, roma o ROMA...
				prov = prov.toUpperCase();
				var myRegEx = /\d/i ;
				
				//CONTROLLO LA PROVINCIA
				if (prov != ""){
					if (prov != "ROMA")
						if (myRegEx.test(prov) == true){
							alert("Inserisci la sigla della provincia");
							return;
						}
						else
							if (prov.length != 2){
								alert("Inserisci la sigla della provincia");
								return;
							}
					
					//chiamo la funzione preleva e prelevo tutti i valori nei campi input
					var datiPrelevati = new Array();
					datiPrelevati = preleva();
					var ajax = new XMLHttpRequest();
					//var url = "../phpFunc/controlDest.php?citta="+citta+"&prov=nein";
					var url = "../phpFunc/controlDest.php";
					// inizializzo la richiesta in post
					ajax.open("post", url, true);
					// imposto il giusto header
					ajax.setRequestHeader("content-type", "application/x-www-form-urlencoded");
					//da datiPrelevati[7] a datiPrelevati[15] sono i campi dell'azienda
					// effettuo la richiesta inviando i valori dei campi input
					//DESTINATARIO PRIVATO
					ajax.send("indRit="+datiPrelevati[6]+"&Cognome="+datiPrelevati[15]+"&Nome="+datiPrelevati[16]+"&prov="+prov+"&citta="+datiPrelevati[18]+"&cap="+datiPrelevati[19]+"&indDest="+datiPrelevati[20]+"&tel="+datiPrelevati[21]+"&mail="+datiPrelevati[22]);
				} 
			}
 

alessandro1997

Utente Attivo
6 Ott 2009
5.302
1
0
26
Roma
alessandro1997.netsons.org
Modifica in questo modo lo script PHP:
PHP:
<?php
header("Location: ../reg_user/prenota2.php?prenota=2");
session_cache_limiter('nocache');
session_start();

// se cerco di caricare home_user.php senza essere loggato
// reindirizzo il browser sull'index.html
if($_SESSION['level'] != 2 && $_SESSION['level'] != 3 && $_SESSION['level'] != 4)
	header("Location: ../public/home.php?alert=2");

include("../include/connect.php");

// connessione al db
$conn = mysql_connect($HOST, $USER, $PASSWORD) or die("IMPOSSIBILE COLLEGARSI AL SERVER");

// seleziona il db
mysql_select_db($DB,$conn) or die("Impossibile connettersi al database {$DB}");

$prov = isset($_POST['prov']) ? trim($_POST['prov']) : '';
$citta = isset($_POST['citta']) ? trim($_POST['citta']) : '';

// se cerco di accedere alla pagina dalla barra di indirizzi reindirizzo l'utente sulla home
if($prov == "" && $città == "")
{
	header("Location: ../index.html");
	exit;
}

if($prov != "")
{
	$sql = "SELECT * FROM province WHERE sigla='{$prov}'";
	$result = mysql_query($sql);
	
	if(mysql_num_rows($result) == 0)
	{
		echo '0';
	}
}
elseif($citta != "")
{
	// da completare
}

// chiude la connesisone con il db	
mysql_close($conn);
?>
E per quanto riguarda la parte Javascript c'è una cosa che mi sfugge: dov'è che controlli la risposta della pagina PHP?
 

M@rco

Nuovo Utente
17 Nov 2010
8
0
0
E per quanto riguarda la parte Javascript c'è una cosa che mi sfugge: dov'è che controlli la risposta della pagina PHP?

Grazie, domani appena torno a casa provo subito...comunque la funzione JavaScript è incompleta, proprio su quel punto lì sono in difficoltà.
 

M@rco

Nuovo Utente
17 Nov 2010
8
0
0
Perfetto, lo script l'ho corretto....ora mi manca proprio la parte in JavaScript. Non so come recuperare i dati e come effettuare il controllo...attendo i tuoi preziosi consigli ;)
 

alessandro1997

Utente Attivo
6 Ott 2009
5.302
1
0
26
Roma
alessandro1997.netsons.org
Ti consiglio di riscrivere il tuo script usando jQuery, un framework Javascript cross-browser che ti consente di effettuare richieste AJAX con grande facilità e senza problemi di compatibilità. Poi penseremo ad implementare le funzionalità che hai richiesto.

Fammi sapere se hai problemi.
 

M@rco

Nuovo Utente
17 Nov 2010
8
0
0
Ok, mi cerco un manuale sul web...se ne conosci qualcuno ben fatto, anche in inglese, linka pure.
 

M@rco

Nuovo Utente
17 Nov 2010
8
0
0
Si si, lì ci sono andato...chiedevo se conoscevi qualche manuale pdf consultabile offline, ma ripensandoci fa niente tanto lavoro prevalentemente quando ho una connessione disponibile.
 
Discussioni simili
Autore Titolo Forum Risposte Data
I javascript come caricare una pagina sopra quella corrente in automatico Javascript 2
A Caricare una pagina jsp in un div alla pressione di un button Javascript 1
S Caricare una pagina con JQuery jQuery 4
F comando php per caricare delle scritte in una pagina html PHP 4
P Caricare una pagina esterna con ajax Javascript 4
M caricare una pagina attraverso menù a tendina Javascript 1
X caricare in un div una pagina esterna Ajax 9
max1850 Caricare listini di prodotti in una pagina Classic ASP 4
L IF per caricare o meno una parte di pagina Javascript 0
Z Caricare nella pagina principale un valore proveniente da una popup Javascript 2
G Caricare una jpg con il php PHP 1
G Caricare una semplice Jpg con il PHP PHP 1
A Caricare foto in una gallery PHP 0
A [risolto] caricare con un ciclo For dei file PHP inclusi in una variabile array PHP 3
I Perchè devo cliccare 2 volte su un link per caricare correttamente il css di una galleria? WordPress 1
S come caricare un banner tramite un form in una cartella all interno del sito PHP 11
I Caricare immagini da una cartella esterna a flash Flash 21
A caricare una foto MySQL 3
giancadeejay Chi mi aiuta a caricare una intro sul mio sito? Flash 0
G [VISUAL BASIC]caricare dati in un database da una console application Visual Basic 3
A Caricare una parte di sito subito e l'altra quando quest'ultima ha terminato.. Javascript 2
K Come Far Caricare Solo Una Scena Alla Volta Flash 0
K Come Far Caricare Solo Una Scena Alla Volta Flash 0
L Come caricare un'immagine in Canvas dinamicamente Javascript 0
C Come caricare foto da google foto ad un sito? Discussioni Varie 1
Y Come caricare e visualizzare un'immagine PHP 0
O MIT App Inventor - caricare un file da app Sviluppo app per Android 1
Alex_70 [PHP] Caricare foto su un'altra tabella collegata PHP 0
A [Java] caricare un url esterno senza utilizzo di iframe Java 0
N [WordPress] Caricare diversi fogli di stile in tema-child WordPress 0
E Caricare dati da DB MySql all'apertura pagina, meglio PHP o Javascript? PHP 1
Selenio89 problema a caricare immagine con html. dove sbaglio? HTML e CSS 25
P [PHP] Caricare un file da client XP su server Ubuntu PHP 2
M [Javascript] Caricare link esterno file js in base al device Javascript 0
L Come caricare <iframe> dopo il click ad un immagine, per migliorare le prestazioni. Discussioni Varie 0
andrea93_12 Aiuto caricare immagine su database MYSQL MySQL 1
giancarlob Prova a rimandare o a caricare in modo asincrono le risorse di blocco SEO e Posizionamento 0
F [HTML] Caricare un font ttf HTML e CSS 2
Y CARICARE IMMAGINI IN CARTELLA PHP PHP 3
A caricare file PHP con Load cambiandone parte del contenuto jQuery 1
9 caricare immagini in tabella html da cartella sul server tramite id database PHP 1
M Problema caricare file sul hosting Discussioni Varie 1
M Caricare più google maps con un ciclo Javascript 1
marino51 non riesco a caricare un allegato percgè non riesco a ridimensionare la finestra Supporto Mr.Webmaster 0
P Caricare nuova pagina dopo invio dati form Javascript 11
F Caricare immagine da Mysql su evento click-radio Javascript 5
D Caricare foto in un DB PHP 2
asevenx problemi per caricare immagine su server PHP 4
M Zenphoto: far caricare immagini agli utenti CMS (Content Management System) 0
F Caricare file da locale al server Javascript 3

Discussioni simili