Page 1 sur 1

PHP sans frames

Posté : 11 mars 2007, 16:59
par Sefrioui
salut,

J'ai un menu en haut et je veux executer les operations au centre

Code : Tout sélectionner

<table> <tr> <td>Menu haut</td> </tr> <tr> <td>Centre</td> </tr> </table>
comment faire pour, par exemple un moteur de recherche, effectuer une operation de recherche et les resultats s'affichent au centre.

Merci

Posté : 11 mars 2007, 17:11
par Ryle
- Option 1 : de manière statique : tu recharges la page.
Tu récupères ainsi les valeurs de ton formulaire et tu peux facilement générer le contenu de ta nouvelle page avec les résultats.

- Option 2 : de manière dynamique avec Ajax (cf. le forum javascript)
A l'aide de l'objet javascript HTTPRequest, tu peux interroger le serveur, lui faire effectuer des traitements et récupérer le résultat normalement affiché à l'écran pour le faire apparaitre dans ta page au bon endroit.


Petite remarque en passant : les balises <table> sont faites pour encapsuler des données que tu souhaites afficher sous forme de tableau et sont maintenant proscrites pour faire de la mise en page de ton document. Utilise plutôt des blocs de type <div> ou paragraphe (plus léger et moins contraignant pour une mise en page avec feuille de style) et du css pour les mettre en forme :)

Posté : 11 mars 2007, 18:52
par VaN
Petite remarque en passant : les balises <table> sont faites pour encapsuler des données que tu souhaites afficher sous forme de tableau et sont maintenant proscrites pour faire de la mise en page de ton document. Utilise plutôt des blocs de type <div> ou paragraphe (plus léger et moins contraignant pour une mise en page avec feuille de style) et du css pour les mettre en forme :)
Enfin, ça reste quand même extremement pratique pour pas mal de choses, autre que de l'affichage de tableau pur et dur. Pour ma part ça fait plus de 5 ans que je fais du HTML, et je ne suis toujours pas passé aux div+CSS, trop laborieux pour un resultat semblable à une mise en page en tableaux. Fin de mon HS :p

Posté : 12 mars 2007, 10:59
par Ryle
@VaN : je suis bien d'accord, il ne s'agit là que de recommandations de toute façon :) Mais dans le cas présent, faire un tableau avec deux lignes d'une cellule ou utiliser deux blocs div, je préconiserais quand même la seconde option qui sera par la suite beaucoup plus maléable :)

Je me suis mis à utiliser les div à la place de certains tableaux il y a peu, c'est effectivement laborieux pour le premier (le temps de retrouver les équivalents et compatibilité), pis ensuite ça va tout seul :)
Mais au final, avoir un document qui ne contient que du contenu et un qui n'a que de la mise en page, c'est pas si innintéréssant que ça :) (surtout que je peux proposer des feuilles de styles propre à chaque utilisateur ;))

Ceci dit, je partage ton avis, et certains tableaux me sont encore très utiles. C'est juste pour éviter de les utiliser à tout va, pour faire des angles arrondis et autres effets purement décoratif, ou comme ici où le tableau ne sert absolument à rien ;)

Posté : 12 mars 2007, 18:48
par Sefrioui
Le code est ainsi:

index.php
<table width="100%" height="800" border="1">
  <tr>
    <th width="15%" height="80">
<?php echo $_SERVER["REMOTE_ADDR"]; ?>

</th>
    <th width="70%">
<?php
 include("body.php");
?>
</th>
</tr>
</table>
form.php:
<form action="index.php?menu=welcome" method="post">
Name: <input type="text" name="name" />
Age: <input type="text" name="age" />
<input type="submit" />
</form>
body.php:
<table width="100%" height="600" align="center" border="1" bordercolor="#330000" style="border-collapse: collapse">
  <tr valign="top">
    <td>
    <?php
$menu = isset($_GET["menu"]) ? $_GET["menu"] : "";
switch ($menu)
{
case 'form' :
        {
        include("form.php");
        }
		break;
case 'welcome' :
        {
        include("welcome.php");
        }
       break;

    default:
        // page par défaut
        include("default.php");
}

?>
</td>
  </tr>
</table>
welcome.php: pr les resultat
Welcome <?php echo $_POST["name"]; ?>.<br />
You are <?php echo $_POST["age"]; ?> years old.
Le resultat s'affiche en haut de page pas dans le centre

Posté : 13 mars 2007, 12:05
par Ryle
Hmm.. c'est normal, tu as un tableau de 600px de haut avec un valign="top", il y a donc de grande chance que le contenu soit placé en haut et pas au milieu :)

Fait attention aux dimensions que tu utilises, elles sont joyeusement incohérentes :) :

- index.php : première cellule 15%, deuxième cellule 70% ... soit 85% au total.
- index.php : hauteur du tableau 800px, hauteur de la première cellule de la seule ligne 80px (hauteur du tableau dans la seconde cellule 600px)