je suis en train de créer un site internet et j'utilise la technique des pseudoframes.
La stucture du site de l'index.php est la suivante:
- une entête qui sert de menu: zone1.php
- les pages du site
- et un pied de page zone2.html.
Mon problème est le suivant: dans l'entête est inséré un code php pour faire un petit moteur de recherche dans une BD.
Et l'affichage des résultats de fait dans la même page.
Le soucis, c'est qu'il reste dans la page la pseudo-frame par défaut accueil.php qui se superpose à l'affichage des résultats de la recherche.
Je me demande comment éviter cela. Est-ce que c'est possible d'afficher les résultats en effaçant la page par défaut?(par exemple)
La motivation sousjacente étant que j'aimerais que tout ce passse dans la même fenêtre (navigation et affichage des résultats de la recherche).
Merci d'avance pour votre aide.
Voilà le code du menu (zone1.php):
Code : Tout sélectionner
[/b]
<span style="position: absolute; left:600; top:5"> <a href="index.php?page=accueil" title="L'accueil">Accueil</a> | <a href="#" >English Version</a> | <a href="#" >Contact</a> | <a href="index.php?page=news" title="Les news">Publications</a> | Rechercher</span>
<span style="position: absolute; left:957; top:3">
<form method="post" action="<?php echo($_SERVER['PHP_SELF']); ?>">
<input name="cherche" type="text" size="10" value="Entrez un mot clé" style="font-size:11px">
<input type="submit" Value="OK" style="font-size:11px">
</form></span>
<?php
if (isset($_POST['cherche']) && $_POST['cherche'] != NULL) // si le mot clé entré (POST[cherche]) existe
{
// on se connecte à MySQL
$db = mysql_connect('localhost','root','') or die ("Impossible de se connecter au serveur de base de donnees");
// on sélectionne la base de donnée
mysql_select_db('mysql',$db) or die ("Impossible d'accéder à la base ");
$cherche = htmlspecialchars($_POST['cherche']);
// on crée la requête SQL
$sql = "SELECT * FROM recherche WHERE description LIKE '%$cherche%' OR mots LIKE '%$cherche%' ";
// on envoie la requête
$req = mysql_query($sql) or die (mysql_error() );
$nb_resultat = mysql_num_rows($req);
echo '<span style="position: absolute; left:10; top:200">';
echo '<h3>Résultat de votre recherche</h3>';
if ($nb_resultat !=0)
{
echo 'Il y a '.$nb_resultat.' ';
if ($nb_resultat > 1) { echo 'résultats :';} else { echo 'résultat';}
echo '<br><br>';
while($data = mysql_fetch_assoc($req))
{
echo '<b>'. $data['titre'].' </b>';
echo ' <a href=" '.$data['url'].' ">Visualisez la page</a> ';
echo $data['description'].'<br><br>';
}
echo '</span>';
}
else {echo 'Nous n\'avons pas trouvé de résultat';}
// on ferme la connexion à mysql
mysql_close();
}
?>
[b]Et celui de la page principale (index.php):
Code : Tout sélectionner
[/b]
<HTML>
<HEAD>
<BODY bgcolor="white">
<!---------------------------------------------------------------------------->
<div class="menu">
<?php include('zone1.php'); // on appelle l'entête du site qui est le menu ?>
</div>
<!---------------------------------------------------------------------------->
<div class="PageSite">
<?php
//on définit le tableau associé contenant les pages autorisées à mettre à jour quand ajout de pages
$pageOK = array ( 'accueil' => 'accueil.php',
'news' => 'news.php');
if ( (isset($_GET['page']) ) && (isset($pageOK[$_GET['page']])) )
{
include($pageOK[$_GET['page']]);
}
else {
include ($pageOK['accueil']);
}
?>
</div>
<!---------------------------------------------------------------------------->
<div class="pied">
<?php include('zone2.html'); // on appelle le pied de page du site ?>
<!---------------------------------------------------------------------------->
</BODY>
</HTML>