Ciao a tutti ragazzi e non, volevo chiedere un informazione su ciò che ho scritto in ajax php e html, perche non mi funziona corettamente.
L' idea è quella di selezionare la scuola da un apposito campo e a seconda del campo selezionato ti inserisce gli indirizzi di quella scuola in un altro campo.
il database e così organizzato una tabella scuole con idscuola, nomescuola, una indirizzi con idindirizzo e nomeindirizzo e infine una intermedia per riuscire a collegare le due precedenti chiamata scuole_indirizzi aventi i campi scuole_idscuola (collega id scuola ) e indirizzi_idindirizzo (collega l'indirizzo).
l' errore che viene e che una volta selezionata la scuola il campo indirizzi si rimpicciolisce e non appaiono gli indirizzi della scuola =(
ecco la pagina principale php e html chiamata registrazione2.php
codice HTML:
<!DOCTYPE html>
<html>
<head>
<!-- Titolo pagina-->
<title>Helpschool! - Registrazione - Passo 2</title>
<!--Import Google Icon Font-->
<link href="http://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
<!--Import materialize.css-->
<link type="text/css" rel="stylesheet" href="css/materialize.min.css" media="screen,projection"/>
<!--Let browser know website is optimized for mobile-->
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
<script type="text/javascript" src="http://code.jquery.com/jquery-1.6.2.min.js"></script>
<script>
$(document).ready(function(){
$.ajax({
url:"php/_getScuole.php",
type: "POST",
data: {},
dataType: "json",
success: function(risultati){
for(var i=0; i<risultati.length; i++){
var opzione = document.createElement("option");
opzione.text = risultati[i];
$("#scuola").append(opzione);
}
},
error: function(richiesta,stato,errori){
alert("Chiamata fallita: "+stato+" "+errori);
}
});
$("#scuola").change(function(){
$.ajax({
url:"php/_getIndirizzi.php",
type: "POST",
data: {scuola: $("#scuola").val()},
dataType: "json",
success: function(risultati){
$("#indirizzo").empty(); /*svuoto prima la cmb da tutte le opzioni*/
for(var i=0; i<risultati.length; i++){
var opzione = document.createElement("option");
opzione.text = risultati[i];
$("#indirizzo").append(opzione);
}
$("#indirizzo").prop("disabled", false); /*abilito la cmb*/
},
error: function(richiesta,stato,errori){
alert("Chiamata fallita: "+stato+" "+errori);
}
});
});
});
</script>
</head>
<body>
<h4>Registrazione <b>HelpSchool!</b> - Passo <B>2</B> di 2</h4>
<p>Ora scegli la <B>tua scuola</B>, il <B>tuo indirizzo di studi</B> e la <B>tua classe</B>! <B>Ricordati che tutti i campi sono obbligatori.</B></p>
<select id="scuola" name="scuola">
<option>Scegli la tua scuola...</option>
</select>
<label>Scegli la <B>tua scuola</B></label>
<select id = "indirizzo" name = "indirizzo">
<option>Scegli il tuo indirizzo di studi...</option>
</select>
<label>Scegli il <B>tuo indirizzo di studi</B></label>
<select id = "classe" name = "classe">
<option value="" disabled selected>Scegli la tua classe...</option>
<option value="1">Prima</option>
<option value="2">Seconda</option>
<option value="3">Terza</option>
<option value="4">Quarta</option>
<option value="5">Quinta</option>
</select>
<label>Scegli la <B>tua classe</B> in cui sei iscritto</label>
</body>
</html>
pagina getScuole.php :
Codice PHP:
<?php
include ("_connessionedb.php"); //connessione al database, presente nella pagina _connessionedb.php
try{
$stmSql = $conn->prepare("SELECT nome_scuola FROM scuole");
$result = $stmSql->execute();
$risultati[] = '';
while($row = $stmSql->fetch()){
$risultati[] = $row[0];
}
echo json_encode($risultati);
$conn = null;
}catch(PDOException $ex){
die("Errore: " .$ex->getMessage());
}
?>
pagina _getIndirizzi.php:
Codice PHP:
<?php
if(isset($_POST['scuola']) && !empty($_POST['scuola'])){
$scuola = $_POST['scuola'];
include ("_connessionedb.php"); //connessione al database, presente nella pagina _connessionedb.php
try{
$stmSql = $conn->prepare("SELECT nome_indirizzo FROM indirizzi JOIN scuole_indirizzi ON (indirizzi.idindirizzo = scuole_indirizzi.indirizzi_idindirizzo) JOIN scuole ON (scuole_indirizzi.scuole_idscuola = scuole.idscuola) WHERE scuole.idscuola = ?");
$stmSql->bindParam(1, $scuola);
$result = $stmSql->execute();
$risultati[] = '';
while($row = $stmSql->fetch()){
$risultati[] = $row[0];
}
echo json_encode($risultati);
$conn = null;
}catch(PDOException $ex){
die("Errore connessione: " .$ex->getMessage());
}
}
?>
pagina connessione.php
Codice PHP:
<?php
//Costanti di connessione al database
//IN CASO DI ACCESSO AL SERVER DELLA SCUOLA: USER: "inf-5ogruppo6" PWD: "tesina9016" ----- ACCESSO IN LOCALE: USER: "root" PWD: ""
$user = "root";
$pwd ="";
$host = "localhost";
$dbname = "inf-5ogruppo6";
//Connessione al database MySql
try{
$conn = new PDO("mysql:host=$host;dbname=$dbname",$user,$pwd);
$conn -> setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
}catch(PDOException $ex){
header("location: /helpschool/avviso.php?n=13"); //in caso di errore di connessione, reindirizzazione nella pagina di errore corrispondente
}
?>
grazie in anticipo a presto!