Forum de discussion et d'aide au php
Vous n'êtes pas identifié.
|
Regles d'utilisation des forums : pensez à toujours les respecter si vous désirez obtenir des réponses rapides. FAQ : pensez à toujours chercher dedans si la réponse à votre question est dedans. Proposez vos news : si vous avez un evenement à annoncer le chat : venez discuter de php. |
||
Bonjour,
J'utilise un moteur de recherche relié a mysql, et j'ai construit une page avec deux frame.
Le moteur de recherche est placé a gauche et je souhaite que les résultats s'affiche a droite.
Je suis complétement bloqué...j'ai essayé target="mainframe" , je me demande si il faut pas un header ou si c'est impossible sous php?
Voici le script du moteur de recherche:
/******************************************************************
* PROGRAMME PRINCIPAL
******************************************************************/
$db_link = mysql_connect("$sql_serveur","$sql_user","$sql_passwd");
$page = isset($_GET['page']) ? $_GET['page'] : 0;
$mot = isset($_POST['mot']) ? $_POST['mot'] : (isset($_GET['mot']) ? $_GET['mot'] : "");
$mot=strtolower($mot);
$mots=split(" ",$mot);
$nombre_mots=count($mots);
$z=1;
$texte="Pages contenant <b>"$mots[0]"</b>";
$phrase="'%$mots[0]%'";
while($z<$nombre_mots)
{
$phrase.=" ".$et_ou." mots like '%$mots[$z]%'";
$texte.=" ";
if($et_ou=="or"){$texte.="et";}else{$texte.="ou";}
$texte.=" <b>"$mots[$z]"</b>";
$z++;
}
if(!isset($debut)) {
$debut=0;
}
if(!isset($page)) {
$page=0;
}
$debut=$page*$limit;
// NOMBRE TOTAL D'ENREGISTREMENTS REPONDANT A LA REQUETE
$requete=mysql_db_query("$sql_bdd","select count(*) from recherche where mots like $phrase order by id",$db_link);
$nb_total=mysql_result($requete,0,"count(*)");
$requete=mysql_db_query("$sql_bdd","select * from recherche where mots like $phrase order by date DESC limit $debut,$limit",$db_link);
$num=mysql_num_rows($requete);
// DEFINITION DU MESSAGE A AFFICHER
if ($num==0) {echo "Désolé, aucune page de ce site ne contient <b>$mot</b>...";}
else if ($mot=="") {echo "<font size=1>Veuillez saisir un ou plusieurs mot-clés avant de cliquer sur 'OK' !</font> ";}
else if (strlen($mot)<2) {echo "Veuillez saisir au moins 2 caractères.";}
// AFFICHAGE DES RESULTATS
else {
echo "<b>$nb_total</b> réponse";
if ($nb_total>1) {echo "s";}
echo "<br>$texte";
$i=0;
while($i<$num)
{
$url=mysql_result($requete,$i,"url");
$titre=mysql_result($requete,$i,"Mots");
$description=mysql_result($requete,$i,"description");
echo "<br><br><a href=\"$url\" target=\"mainFrame\"><b>$titre</b></a><br><font size=1>$description</font><br>\n";
$i++;
}
echo "<br><br>";
// AFFICHAGE DU LIEN PRECEDENT SI BESOIN EST
// (LA PREMIERE PAGES EST 0)
if ($page>0)
{
$precedent=$page-1;
print "<a href=\"$script_name?page=$precedent&mot=$mot\">PRECEDENT</a> \n";
}
// AFFICHAGE DES NUMEROS DE PAGE
$i=0;$j=1;
if($nb_total>$limit)
{
while($i<($nb_total/$limit))
{
if($i!=$page){echo "(<a href=\"$script_name?page=$i&mot=$mot\">$j</a>) ";}
else {echo "<b>($j)</b> ";}
$i++;$j++;
}
}
// AFFICHAGE DU LIEN SUIVANT SI BESOIN EST
if($debut+$limit<$nb_total)
{
$suivant=$page+1;
echo "<a href=\"$script_name?page=$suivant&mot=$mot\">SUIVANT</a>";
}
}
// DECONNEXION DE LA BASE DE DONNEE
mysql_close($db_link);
?>
</td>
</tr>
</table>Je me demande si ce n'est pas possible de lui faire changer de frame dés que l'utilisateur a valider le bouton rechercher?
Merci pour votre aide...
Hors ligne
Hello,
tout d'abord, place toujours ton code entre les balises [code ] et [/code ] (sans les espaces) ca rends tout de suite le message plus lisible (voir ton message, j'ai ajouté les balises)
ensuite, pour ta frame, je ne voit pas de balise de frame ...
si tu veut faire un target="mainframe", il faut te faut une frame à laquelle tu donne le nom mainframe.
attention cependant, les frames, c'est pas bon pour le référencement.
Hors ligne
oui, c exact...
Dans mon modele de page, j'ai une frame à gauche qui s'appelle leftframe qui contient le moteur de recherche et sur la droite j'ai une frame qui s'appelle mainframe.
Le soucis est que je souhaite envoyé sur la frame de droite les resultats qui ressortent a gauche.
Actuellement tout les résulats s'affichent sous le submit à gauche dans la meme frame.
Je n'arrive pas encore a lui faire envoyé les résultats à droite...
Merci pour ton aide.
Hors ligne
et bien (normalement) il te suffit d'utiliser l'attribut target pour ton formulaire :
<form action="traitement.php" method="post" target="mainframe" id="form">
Hors ligne