Eviter rechargement page requet sql php
mad92men
Messages postés
130
Date d'inscription
Statut
Membre
Dernière intervention
-
mad92men Messages postés 130 Date d'inscription Statut Membre Dernière intervention -
mad92men Messages postés 130 Date d'inscription Statut Membre Dernière intervention -
Salut,
Je viens de créer une liste déroulante dynamique en php. Mon problème à chaque fois quand je clic sur un choix de la liste toute la page se charge se qui n'est pas vraiment pratique car ma liste deroulante se situe tout en bas de la page. Je sais que ça existe une solution en javascript ou AJAX mais je sais par ou je dois commencer.
Merci d'avance pour votre aide :)
Ci dessous le code de ma liste déroulante :
<?php
/* Variables de connexion : ajustez ces paramètres selon votre propre environnement */
$serveur = "*****";
$admin = "*****";
$mdp = "******";
$base = "*******";
$connexion = mysql_pconnect($serveur, $admin, $mdp) or die('Probèlme connexion au serveur '.mysql_error());
$choixbase = mysql_select_db($base, $connexion) or die('Probèlme sélection base '.mysql_error());
if(isset($_POST['ok'])){
//le bouton ok du formulaire a été cliqué
$ville=isset($_POST['ville']) ? $_POST['ville'] : "";
$sql3 = "SELECT lien, ville FROM liens_villes WHERE id_ville='".$ville."'";
$rech_lien= mysql_query($sql3) or die('Pb requette lien '.mysql_error());
$ligne=mysql_fetch_assoc($rech_lien);
$lien=$ligne['lien'];
//on redirige directement vers la page du lien
header('Location:'.$lien.'');
}
///
echo("\n");
$idr = isset($_POST['departement'])?$_POST['departement']:null;
?>
<?php
$idr = isset($_POST['departement'])?$_POST['departement']:null;
?>
<?php
//recupération des selections éventuelles sinon init à vide
$departement=isset($_POST['departement']) ? $_POST['departement'] : "";
$ville=isset($_POST['ville']) ? $_POST['ville'] : "";
?>
<form action="<?php echo($_SERVER['HTML_SELF']); ?>" method="post" id="chgdept">
<div class="body-list">
<p style="text-align:center;">
<select style="width:200px" name="departement" id="departement" onchange="submit();">
<option value="-1">- - - Choisissez un departement - - -</option>
<?php
$sql1 = "SELECT id_departement, departement FROM departement ORDER BY departement"; //par orde alpa des noms c'est qd mêm mieux !
$rech_departements = mysql_query($sql1) or die('<p style="color: #FF0000; text-align:center; font-size: 12px;">Problème requette series </p>'.mysql_error());
while($ligne = mysql_fetch_assoc($rech_departements)){
$option= '<option value="'.$ligne['id_departement'].'" ';
if($departement==$ligne['id_departement']){$option.= ' selected="selected"';}
$option.=' >'.$ligne['departement'].'</option>';
echo $option;
}
mysql_free_result($rech_departements);
?>
</select>
<?php
//liste villes
if(isset($_POST['departement'])){
if($_POST['departement']==-1){
echo '<p style="color: #FF0000; text-align:center; font-size: 12px;">Vous devez chosir un departement</p>';
}else{
?></br>
<select style="width:200px" name="ville" id="ville" onchange="submit();">
<option value="-1">- - - Choisissez une ville - - -</option>
<?php
$sql2 = "SELECT id_ville, ville FROM ville WHERE id_departement='".$departement."' ORDER BY ville";
$rech_ville = mysql_query($sql2) or die('<p style="color: #FF0000; text-align:center; font-size: 12px;">Problème requette ville</p> '.mysql_error());
while($ligne = mysql_fetch_assoc($rech_ville)){
//generation de la ligne option
$option= '<option value="'.$ligne['id_ville'].'" ';
if($ville==$ligne['id_ville']){$option.= ' selected="selected"';} //ça c'est pour conserver la sélection au réafficage suivant
$option.=' >'.$ligne['ville'].'</option>';
//affichage de la ligne option
echo $option;
}
mysql_free_result($rech_ville);
?>
</select>
<?php
}
}
if(isset($_POST['ville'])){
if($_POST['ville']==-1){
echo '<p style="color: #FF0000; text-align:center; font-size: 12px;">Vous devez choisir un modèle</p>';
}else{
?>
</p>
<p style="text-align:center">
<input type="submit" class="button-list" name="ok" id="ok" value="Valider" />
</p>
<p>
<?php
}
}
?>
</p>
</div>
</form>
<p>
<?php
/* Terminé, on ferme la connexion */
mysql_close($connexion);
?></div>
Je viens de créer une liste déroulante dynamique en php. Mon problème à chaque fois quand je clic sur un choix de la liste toute la page se charge se qui n'est pas vraiment pratique car ma liste deroulante se situe tout en bas de la page. Je sais que ça existe une solution en javascript ou AJAX mais je sais par ou je dois commencer.
Merci d'avance pour votre aide :)
Ci dessous le code de ma liste déroulante :
<?php
/* Variables de connexion : ajustez ces paramètres selon votre propre environnement */
$serveur = "*****";
$admin = "*****";
$mdp = "******";
$base = "*******";
$connexion = mysql_pconnect($serveur, $admin, $mdp) or die('Probèlme connexion au serveur '.mysql_error());
$choixbase = mysql_select_db($base, $connexion) or die('Probèlme sélection base '.mysql_error());
if(isset($_POST['ok'])){
//le bouton ok du formulaire a été cliqué
$ville=isset($_POST['ville']) ? $_POST['ville'] : "";
$sql3 = "SELECT lien, ville FROM liens_villes WHERE id_ville='".$ville."'";
$rech_lien= mysql_query($sql3) or die('Pb requette lien '.mysql_error());
$ligne=mysql_fetch_assoc($rech_lien);
$lien=$ligne['lien'];
//on redirige directement vers la page du lien
header('Location:'.$lien.'');
}
///
echo("\n");
$idr = isset($_POST['departement'])?$_POST['departement']:null;
?>
<?php
$idr = isset($_POST['departement'])?$_POST['departement']:null;
?>
<?php
//recupération des selections éventuelles sinon init à vide
$departement=isset($_POST['departement']) ? $_POST['departement'] : "";
$ville=isset($_POST['ville']) ? $_POST['ville'] : "";
?>
<form action="<?php echo($_SERVER['HTML_SELF']); ?>" method="post" id="chgdept">
<div class="body-list">
<p style="text-align:center;">
<select style="width:200px" name="departement" id="departement" onchange="submit();">
<option value="-1">- - - Choisissez un departement - - -</option>
<?php
$sql1 = "SELECT id_departement, departement FROM departement ORDER BY departement"; //par orde alpa des noms c'est qd mêm mieux !
$rech_departements = mysql_query($sql1) or die('<p style="color: #FF0000; text-align:center; font-size: 12px;">Problème requette series </p>'.mysql_error());
while($ligne = mysql_fetch_assoc($rech_departements)){
$option= '<option value="'.$ligne['id_departement'].'" ';
if($departement==$ligne['id_departement']){$option.= ' selected="selected"';}
$option.=' >'.$ligne['departement'].'</option>';
echo $option;
}
mysql_free_result($rech_departements);
?>
</select>
<?php
//liste villes
if(isset($_POST['departement'])){
if($_POST['departement']==-1){
echo '<p style="color: #FF0000; text-align:center; font-size: 12px;">Vous devez chosir un departement</p>';
}else{
?></br>
<select style="width:200px" name="ville" id="ville" onchange="submit();">
<option value="-1">- - - Choisissez une ville - - -</option>
<?php
$sql2 = "SELECT id_ville, ville FROM ville WHERE id_departement='".$departement."' ORDER BY ville";
$rech_ville = mysql_query($sql2) or die('<p style="color: #FF0000; text-align:center; font-size: 12px;">Problème requette ville</p> '.mysql_error());
while($ligne = mysql_fetch_assoc($rech_ville)){
//generation de la ligne option
$option= '<option value="'.$ligne['id_ville'].'" ';
if($ville==$ligne['id_ville']){$option.= ' selected="selected"';} //ça c'est pour conserver la sélection au réafficage suivant
$option.=' >'.$ligne['ville'].'</option>';
//affichage de la ligne option
echo $option;
}
mysql_free_result($rech_ville);
?>
</select>
<?php
}
}
if(isset($_POST['ville'])){
if($_POST['ville']==-1){
echo '<p style="color: #FF0000; text-align:center; font-size: 12px;">Vous devez choisir un modèle</p>';
}else{
?>
</p>
<p style="text-align:center">
<input type="submit" class="button-list" name="ok" id="ok" value="Valider" />
</p>
<p>
<?php
}
}
?>
</p>
</div>
</form>
<p>
<?php
/* Terminé, on ferme la connexion */
mysql_close($connexion);
?></div>
A voir également:
- Eviter rechargement page requet sql php
- Supprimer page word - Guide
- Éviter pub youtube - Accueil - Streaming
- Imprimer tableau excel sur une page - Guide
- Page d'accueil - Guide
- Page privée - Guide
1 réponse
'lut
Je plaide ici coupable le
Mais j'ai un gros avertissement pour toi:
from human import idiocy
del idiocy
Je plaide ici coupable le
onchange="submit();"qui envoie le formulaire dès le changement.
Mais j'ai un gros avertissement pour toi:
L'extension MySQL est obsolète
Vieille, plus mise à jour = dangereuse, induisant de mauvaises pratiques comme ton code le montre (or dieet une belle possibilité d'injection SQL, ...).
from human import idiocy
del idiocy
Avez vous une piste SVP c'est vraiment urgent.
Merci d'avance :)