Problème d'affichage des variables

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Problème d'affichage des variables

par Aureusms » 17 mars 2008, 19:45

Dans ta conception du site, c'est normal que cela fasse cela :

Tu charge une recherche qui modifie une variable de session coté serveur mais tu demandes de rafraichir l'autre cadre coté client... Évidement il n'a pas l'information que la variable de session à changer sauf quand tu rafraichi toute la page...

Tu as donc plusieurs choix mais rapidement soit :
  • tu décides de te passer des frames
    tu utilises javascript pour mettre l'autre cadre à jour (mais attention certains utilisateurs désactive javascript)
    A la fin de ton premier script tu rafraichi toute tes pages via header(location:) mais contraignant car aucune sortie HTML (aucun affichage) doit se faire avant
Moi ce que je ferai :
Créer des pseudo-frame en CSS avec une seule page PHP pour le traitement...
Ainsi (rapidement) tu enlèves des 2 frames pour n'en créer qu'une seule que tu divises en deux parties grâce au CSS :
<?php
session_start();
?>

<body style="background-color:#FFF;">

<?
// RESULTPROC.PHP - Affichage des résultats de la recherche des procédures.

$db = mysql_connect("***", "***", "***");
mysql_select_db('rcm',$db);

//a protéger !!!
$id=$_GET ["search"] ;

//plus utile $_SESSION['id'] =$id;

$sql = "SELECT * FROM PROC WHERE libelle LIKE '%$id%'";
$req = mysql_query($sql) or die('Erreur SQL !'.$sql.''.mysql_error());
?>

<div style="position: absolute; top:0; left: 50%;">
    <table border="3">

<?php
while($data = mysql_fetch_assoc($req))
       {
       ?>
      <tr>
         <td width=5>&nbsp;</td>
         <td style="color: black;" width="50" bgcolor="lightblue" bordercolordark="black">
            <?php echo $data['CODE']; ?>
         </td>
         <td width=5>&nbsp;</td>
         <td width="800" bgcolor="white" bordercolordark="black">
            <?php echo $data['libelle']; ?> 
        </td>
      </tr>
      <?php
      }
      ?>
    </table>
</div>

<?php
$sql = "SELECT * FROM DIAG WHERE LIBELDIAG LIKE '%$id%'";
$req = mysql_query($sql) or die('Erreur SQL !'.$sql.''.mysql_error());

?>
<div style="position: absolute; top:0; left: 0; width: 50%;">
   <table border="3">
  

<?php
while($data = mysql_fetch_assoc($req))
       {
       ?>
       <tr>
         <td width=5>&nbsp;</td>
         <td style="color:black;"  width="50" bgcolor="lightgreen" bordercolordark="black">
              <? echo $data['CODEDIAG']; ?>
         </td>
         <td width=5>&nbsp;</td>
         <td width="800" bgcolor="white" bordercolordark="black">
              <?echo $data['LIBELDIAG']; ?>
         </td>
       </tr> 
       <?php
        }
       ?>
   </table> 
</div>

<?php
mysql_close();
?>
Ainsi tu as deux division (<div>) qui une prends la partie gauche (<div style="position: absolute; top:0; left: 0; width: 50%;">) et l'autre prends la partie droite.

Attention c'est juste une piste que je te donne...

Aie

par p.daloze » 17 mars 2008, 11:22

Merci Momox,

j'ai pas attention !

Philippe

par momox » 16 mars 2008, 22:29

Ce serait bien de cacher son mot de passe SQL aussi, j'avais reporté le message pour cette raison principalement...

par p.daloze » 16 mars 2008, 13:19

Bonjour Aureusms,

Merci d'essayer de m'aider.
Le mieux est d'aller voir sur http://rcm.jexiste.be
Tu tapes le texte à rechercher et tu valides ---> la recherche s'effectue et le resultat s'affiche correctement dans le frame à droite dans resultproc.php ---> mais rien à Gauche dans resultdiag.php

Ensuite si tu recharge la page , cette fois la recherche est correcte à gauche dans resultdiag mais plus à droite dans resultproc.
Ce que je voudrais c'est que l'affichage des deux s'effectue en même temps ----> de cette manière j'aurais l'ensemble des resultats sur le même écran.

En fait, j'ai commencé un nouveau boulot d'encodage du RCM --> Résumé clinique minimum.
Ce "petit" site m'aiderait à trouver les codes à utiliser plus facilement.

Merci. Philippe

[Note : ce message a été posté de manière anonyme avant d'être réattribué à son auteur]

Re: Problème d'affichage des variables

par Aureusms » 15 mars 2008, 23:25

Bonjour et merci d'avance de m'aidersi vous le pouvez.
Au depart d'un formulaire html j'entre un texte à rechercher dans 2 tables d'une base mysql.
Je récupère la variable dans le fichier resultproc.php et l'affichage est correcte.
Je passe la variable au deuxieme fichier resultdiag.php et l'affichage correcte ne s'effectue que lorsque je recharge l'entiereté du site par index.html.
A ce moment donc, j'ai les renseignements demandés dans resultdiag.php qui sont bien affichés mais mon resultproc.php n'est plus bon.
Je voudrais que l'affichage s'effectue dans les deux pages correctement et en même temps.
Je vous mets le code.

MERCI
Philippe
Bonjour Philippe,

Ta variable $_SESSION["id"] n'est plus bonne qaund tu passes de resultproc.php à resultdiag.php ? C'est cà ?

par Truc » 15 mars 2008, 19:12

Modération :
p.daloze, afin d'améliorer la lisibilité de ton message,
pense à utiliser les balises [code] ou [php] (selon le langage utilisé).

Elles sont disponibles au-dessus de la zone de saisie de ton message
lorsque tu postes un nouveau message.

Des indications sont disponibles sur la manière de mettre en forme vos messages dans la FAQ

Problème d'affichage des variables

par p.daloze » 15 mars 2008, 17:58

Bonjour et merci d'avance de m'aidersi vous le pouvez.
Au depart d'un formulaire html j'entre un texte à rechercher dans 2 tables d'une base mysql.
Je récupère la variable dans le fichier resultproc.php et l'affichage est correcte.
Je passe la variable au deuxieme fichier resultdiag.php et l'affichage correcte ne s'effectue que lorsque je recharge l'entiereté du site par index.html.
A ce moment donc, j'ai les renseignements demandés dans resultdiag.php qui sont bien affichés mais mon resultproc.php n'est plus bon.
Je voudrais que l'affichage s'effectue dans les deux pages correctement et en même temps.
Je vous mets le code.

MERCI
Philippe

Code de search.html
<html>
<head>
</head>                                                                                         
<div align="center"><font size=1>                                                     
</font><font face="Verdana, Arial, Helvetica, sans-serif" size="2
<font size="3">
<form action="resultproc.php" method="get" target="proc">
<table border=0>
<td><div align=right>
Entrez ICI le terme à rechercher :
</div></td>
<td><div align=left>
<input type="text" name="search" maxlength="80" size="80">
<input type="submit" value="Recherche"></div>
</div></td>
</TABLE>
</form>
</font></font></div>                                                
</td>


Code de resultproc.php
<?php
session_start();

?>


<body>
<body bgcolor='white'>
</body>
<?
// RESULTPROC.PHP - Affichage des résultats de la recherche des procédures.

$db = mysql_connect("***", "***", "***");
mysql_select_db('rcm',$db);

$id=$_GET ["search"] ;
$_SESSION['id'] =$id;

$sql = "SELECT * FROM PROC WHERE libelle LIKE '%$id%'";






$req = mysql_query($sql) or die('Erreur SQL !
'.$sql.'
'.mysql_error());

while($data = mysql_fetch_array($req))


{
echo "<div align=\"center\"><table border=\"3\"><tr>";

?>

<td width=5></td>
<td  width=50 bgcolor="lightblue" bordercolordark="black">
<font color="black">
<?
echo $data['CODE'];echo "</td>";
?>

<td width=5></td>
<td width=800 bgcolor="white" bordercolordark="black">
<?echo $data['libelle'];echo "</td>";

?>

<?echo "</td> </tr> </table> </center></div>"; }mysql_close();?>
Code de resultdiag.php

<?PHP
session_start();
$id2 = $_SESSION['id'] ;
?>

<body>
<bgcolor="#CCCCCC">
</body>
<?
// RESULTDIAG.PHP - Affichage des résultats de la recherche des diagnostiques.
$db = mysql_connect("*", "*", "*");
mysql_select_db('rcm',$db);



$sql = "SELECT * FROM DIAG WHERE LIBELDIAG LIKE '%$id2%'";





$req = mysql_query($sql) or die('Erreur SQL !
'.$sql.'
'.mysql_error());

while($data = mysql_fetch_array($req))

{
echo "<div align=\"center\"><table border=\"3\"><tr>";

?>
<?

?>
<td width=5></td>
<td  width=50 bgcolor="lightgreen" bordercolordark="black">
<font color="black">
<?
echo $data['CODEDIAG'];echo "</td>";
?>

<td width=5></td>
<td width=800 bgcolor="white" bordercolordark="black">
<?echo $data['LIBELDIAG'];echo "</td>";

?>

<?echo "</td> </tr> </table> </center></div>"; }mysql_close();?>