Rediction php dans div

Rediction php dans div - HTML/CSS - Programmation

Marsh Posté le 22-10-2010 à 11:29:06    

Bonjour a vous tous !  :hello:  
 
Alors voila, je ne sais pas si ce message est dans la bonne catégorie, je ne savais pas trop entre ajax, php et xhtml/css...jespere que vous n'en tiendrez pas compte.
 
Je créé pour un projet de master physique, une application qui gere les données d'eruptions volcaniques.
 
Pour ça j'utilise le php/mysql. Toutes les pages php marchent...pour ça pas de probleme.
 
Cependant pour la structure du site, j'utilise le html/css.
J'ai un container, un header, un menu a gauche et un contenu a droite appelé "contenur"  
 
Avec ajax j'arrive en cliquant sur un lien dans le menu a faire venir le contenu (un php) dans la div "contenur". Le probleme etant que ce php redonne a nouveau vers un autre php. Et donc quand je demande de m'afficher le resultat il me le donne en enlevant toutes mes divs. Comment faire apparaitre a nouveau le resultat dans la meme div ? et ainsi rester de façon continue sur cette div "contenur".  
 
Merci a tous pour vos réponses...en esperant avoir l'aide souhaitée   :sweat:  
 
A bientot  :hello:

Reply

Marsh Posté le 22-10-2010 à 11:29:06   

Reply

Marsh Posté le 22-10-2010 à 12:23:01    

Wow Wow wow...
 
Les constructions suivantes n'ont aucun sens étant donné le contexte:
"ce php redonne a nouveau vers un autre php"
"il me le donne en enlevant toutes mes divs"
 
et c'est dommage car du coup je ne comprends pas du tout ton problème.
Je comprends que tu fais un appel ajax depuis un menu à gauche; Ton appel se fait avec une url vers un fichier php qui retourne du html (je suppose) que tu veux afficher à droite dans une div "conteneur".
 
Jusque là pas de soucis. C'est ton problème de "redirection" que je ne comprends pas. Essaie de mettre des snippets montrant la "redirection" et explique mieux comment il "enlève toutes les divs". ca a l'air clair pour toi (vu que tu utilises "Et donc" ) mais ça l'est pas du tout en fait.

Reply

Marsh Posté le 22-10-2010 à 12:51:07    

gelatine_velue a écrit :

Wow Wow wow...
 
Les constructions suivantes n'ont aucun sens étant donné le contexte:
"ce php redonne a nouveau vers un autre php"
"il me le donne en enlevant toutes mes divs"
 
et c'est dommage car du coup je ne comprends pas du tout ton problème.
Je comprends que tu fais un appel ajax depuis un menu à gauche; Ton appel se fait avec une url vers un fichier php qui retourne du html (je suppose) que tu veux afficher à droite dans une div "conteneur".
 
Jusque là pas de soucis. C'est ton problème de "redirection" que je ne comprends pas. Essaie de mettre des snippets montrant la "redirection" et explique mieux comment il "enlève toutes les divs". ca a l'air clair pour toi (vu que tu utilises "Et donc" ) mais ça l'est pas du tout en fait.


 
 
Hum , c'est vrai que je m'explique mal , je réessaye  :sarcastic:  :
 
Dans ma div , un php "modifiche1.php" est appelé (par ajax comme tu l'as compris)
sauf que ce php fait appel a un autre php modifiche2.php pour traiter le résultat.  
 
Code de l'appel:
 
//affichage des données:
    while( $result = mysql_fetch_object( $requete ) )
    {
       echo("<div align=\"center\">".$result->nom." ".$result->lieu." <a href=\"insert/modifiche2.php?id=".$result->id."\">modifier</a><br>\n" ) ;
    }
 
 
et donc ce modifiche2.php ne se lance pas dans la div "contenur" mais dans une autre page et me montre le résultat attendu.
Comment faire pour que modifiche2.php reste dans la div "contenur" ?
 
merci de ta réponse dans tous les cas :)

Reply

Marsh Posté le 22-10-2010 à 14:02:53    

Ah ben c'est simple, au lieu de mettre ceci:  
 
<a href=\"insert/modifiche2.php?id=".$result->id."\">modifier</a>
 
Mets du code javascript qui va appeler cette même url et le mettre dans ta div conteneur. Il suffit de reprendre le code que tu tilises déja pour appeler modifiche1.php.
 

Reply

Marsh Posté le 22-10-2010 à 14:32:58    

D'accord, j'y ai pensé mais malheuresement niveau php je ne vois pas trop comment l'incruster :
 
<a ="#"onclick="envoieRequete('insert/modifiche2.php?id=','contenur');"
 
J'ai enormement d'erreur de syntaxe.
En tout cas merci beaucoup pour ta réponse, rapide qui plus est :)
 

Reply

Marsh Posté le 22-10-2010 à 14:37:15    

L'idée est la bonne, une fois les erreurs de syntaxe corrigées ça devrait être bon.

Reply

Marsh Posté le 22-10-2010 à 14:41:18    

Merci je te tiens au courant ;)

Reply

Marsh Posté le 22-10-2010 à 14:59:42    

Bon il me met un jolie parse error :
 
<a href=\"#\"onclick=\"envoieRequete('insert/modifiche2.php?id=\"', 'contenur2');\" .$result->id."\">modifier</a><br>\n" ) ;
   
Aurais tu une idée ?  

Reply

Marsh Posté le 22-10-2010 à 15:48:40    

Une bonne pratique selon moi est de faire en sorte que les liens AJAX marchent sans js.

 

Tu fais donc :

Code :
  1. <a href="insert/modifiche2.php?id=42" onclick="appelAjax(this.href);return false;">
 

Une autre bonne pratique est de séparer le HTML du PHP, au moins par des balises PHP :

Code :
  1. while( $result = mysql_fetch_object( $requete ) ){
  2.       ?>
  3.       <div class="center"><?= $result->nom ?> <?= $result->lieu?>
  4.       <a href="insert/modifiche2.php?id=<?= $result->id?>"  onclick="appelAjax(this.href);return false;">modifier</a><br/>
  5.       <?php
  6. }

Message cité 1 fois
Message édité par Paulp le 22-10-2010 à 15:49:18
Reply

Marsh Posté le 22-10-2010 à 16:02:18    

Paulp a écrit :

Une bonne pratique selon moi est de faire en sorte que les liens AJAX marchent sans js.
 
Tu fais donc :

Code :
  1. <a href="insert/modifiche2.php?id=42" onclick="appelAjax(this.href);return false;">


 
Une autre bonne pratique est de séparer le HTML du PHP, au moins par des balises PHP :

Code :
  1. while( $result = mysql_fetch_object( $requete ) ){
  2.       ?>
  3.       <div class="center"><?= $result->nom ?> <?= $result->lieu?>
  4.       <a href="insert/modifiche2.php?id=<?= $result->id?>"  onclick="appelAjax(this.href);return false;">modifier</a><br/>
  5.       <?php
  6. }



 
 
Je vais essayer de faire comme tu m'indiques :) merci ! je te donne le code du php qui appel le second (tout ça dans la div contenur) :
 

Code :
  1. <html>
  2.   <head>
  3.     <title>modification</title>
  4.   </head>
  5. <body>
  6. <form name='post' method='post' action='modifiche.php'>
  7.   <?php
  8.     //paramètres de connexion
  9. $dbhost ="localhost";
  10. $user ="root";
  11. $password ="";
  12. $usebdd = "volcan";
  13. //connexion au serveur MySQL
  14. $connexion = @mysql_connect("$dbhost","$user","$password" );
  15. if (!$connexion) {
  16.  echo "Impossible d'effectuer la connexion";
  17.  exit;
  18. }
  19. //sélection de la base de données:
  20.   $db  = mysql_select_db( "volcan" ) ;
  21.     //requête SQL:
  22.     $sql = "SELECT *
  23.       FROM volcan
  24.       ORDER BY nom" ;
  25.     //exécution de la requête:
  26.     $requete = mysql_query( $sql, $connexion ) ;
  27.     //affichage des données:
  28.     while( $result = mysql_fetch_object( $requete ) )
  29.     {
  30.        echo("<div align=\"center\">".$result->nom." ".$result->lieu." <a href=\"modifiche2.php?id=".$result->id."\">modifier</a><br>\n" ) ;
  31.     }
  32.   ?>
  33.  
  34.   </form>
  35. </body>
  36. </html>


 
 

Reply

Marsh Posté le 22-10-2010 à 16:02:18   

Reply

Marsh Posté le 22-10-2010 à 16:13:34    

[quotemsg=2031514,10,673424]
 

Code :
  1. <a href="insert/modifiche2.php?id=42" onclick="appelAjax(this.href);return false;">


 
id=42?  
 
Sinon je viens d'essayer, ça ne marche pas, jai le droit a une serie de "nom ?> lieu?> modifier"
 
Apparement il n'aime pas trop la séparation php/html ?

Reply

Marsh Posté le 22-10-2010 à 17:52:53    

Donne le code

Reply

Marsh Posté le 22-10-2010 à 18:03:43    

Code :
  1. <html>
  2.   <head>
  3.     <title>modification</title>
  4.   </head>
  5. <body>
  6. <a href="insert/modifiche2.php?id=42" onclick="appelAjax(this.href);return false;">
  7. <form name='post' method='post' action='modifiche.php'>
  8.   <?php
  9.     //paramètres de connexion
  10. $dbhost ="localhost";
  11. $user ="root";
  12. $password ="";
  13. $usebdd = "volcan";
  14. //connexion au serveur MySQL
  15. $connexion = @mysql_connect("$dbhost","$user","$password" );
  16. if (!$connexion) {
  17.  echo "Impossible d'effectuer la connexion";
  18.  exit;
  19. }
  20. //sélection de la base de données:
  21.   $db  = mysql_select_db( "volcan" ) ;
  22.     //requête SQL:
  23.     $sql = "SELECT *
  24.       FROM volcan
  25.       ORDER BY nom" ;
  26.     //exécution de la requête:
  27.     $requete = mysql_query( $sql, $connexion ) ;
  28.     //affichage des données:
  29.    while( $result = mysql_fetch_object( $requete ) ){
  30.        ?>
  31.        <div class="center"><?= $result->nom ?> <?= $result->lieu?>
  32.        <a href="insert/modifiche2.php?id=<?= $result->id?>"  onclick="appelAjax(this.href);return false;">modifier</a><br/>
  33.        <?php
  34. }
  35.      
  36.   ?>
  37.  
  38.   </form>
  39. </body>
  40. </html>

]

 


J'ai tout simplement copier coller... :sarcastic:

 

Je precise que je suis débutant...et que je bute sur ce point depuis mardi :'(


Message édité par yonafunu le 22-10-2010 à 18:04:29
Reply

Marsh Posté le 22-10-2010 à 18:23:15    

Quelle est le HTML généré ?
Tu ne fermes pas le div dans le while.

Reply

Marsh Posté le 22-10-2010 à 18:43:37    

Paulp a écrit :

Quelle est le HTML généré ?
Tu ne fermes pas le div dans le while.


Code :
  1. <div align="center">nom ?&gt; lieu?&gt;
  2.        <a href="insert/modifiche2.php?id=&lt;?= $result-&gt;id?&gt;" onclick="appelAjax(this.href);return false;">modifier</a><br>
  3.        </div>


 
Ceci plusieurs fois...
 
j'ai refermé le div...sans changement.  
Deja je ne comprend pas pourquoi jai toujours :
 
"nom ?> lieu?> modifier
nom ?> lieu?> modifier
nom ?> lieu?> modifier
nom ?> lieu?> modifier"
 
Il devrait apparaitre des noms de volcans a la place, et les lieux...
Ensuite quand je clique sur un "modifier" il change de page et me met :
 
"Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource in C:\wamp\www\Projet\site\insert\modifiche2.php on line 36"
 
modifiche2.php:

Code :
  1. <html>
  2.   <head>
  3.     <title>modification</title>
  4.   </head>
  5. <body>
  6.   <?php
  7.   //paramètres de connexion
  8. $dbhost ="localhost";
  9. $user ="root";
  10. $password ="";
  11. $usebdd = "volcan";
  12. //connexion au serveur MySQL
  13. $connexion = @mysql_connect("$dbhost","$user","$password" );
  14. if (!$connexion) {
  15.  echo "Impossible d'effectuer la connexion";
  16.  exit;
  17. }
  18. //sélection de la base de données:
  19.   $db  = mysql_select_db( "volcan" ) ;
  20.   // quel enregistrement modifier
  21.   $id  = $_GET["id"] ;
  22.   //requête SQL:
  23.   $sql = "SELECT *
  24.             FROM volcan
  25.     WHERE id = ".$id ;
  26.   //exécution de la requête:
  27.   $requete = mysql_query( $sql, $connexion ) ;
  28.   //affichage des données:
  29.   if( $result = mysql_fetch_object( $requete ) )
  30.   {
  31.   ?>
  32.  
  33.   <form name="insertion" action="modifiche3.php" method="POST">
  34.   <input type="hidden" name="id" value="<?php echo($id) ;?>">
  35.   <table border="0" align="center" cellspacing="2" cellpadding="2">
  36.     <tr align="center">
  37.       <td>Nom</td>
  38.       <td><input type="text"  style="width:700px" name="nom" value="<?php echo($result->nom) ;?>"></td>
  39.     </tr>
  40.     <tr align="center">
  41.       <td>Lieu</td>
  42.       <td><input type="text"  style="width:700px" name="lieu" value="<?php echo($result->lieu) ;?>"></td>
  43.     </tr>
  44.     <tr align="center">
  45.       <td>Origine</td>
  46.       <td><input type="text"  style="width:700px" name="origine" value="<?php echo($result->origine) ;?>"></td>
  47.     </tr>
  48.     <tr align="center">
  49.       <td>Forme </td>
  50.       <td><input type="text"  style="width:700px" name="forme" value="<?php echo($result->forme) ;?>"></td>
  51.     </tr>
  52.     <tr align="center">
  53.       <td>Nature du volcan</td>
  54.       <td><input type="text" style="width:700px" name="nature" value="<?php echo($result->nature) ;?>"></td>
  55.     </tr>
  56.     <tr align="center">
  57.       <td>Commentaire</td>
  58.       <td><input type="text" style="height:200px;width:700px" name="commentaire" value="<?php echo($result->commentaire) ;?>"></td>
  59.     </tr>
  60.     <tr align="center">
  61.       <td colspan="2"><input type="submit" value="modifier"></td>
  62.     </tr>
  63.   </table>
  64. </form>
  65.   <?php
  66.   }//fin if  
  67.   ?>
  68.  
  69.   </body>
  70.   </html>


 
Je précise que toute l'operation modifiche1 et 2  marchent tres bien sous wamp,seulement sans passer par l'application...
 
 
 
Merci de ton aide  :jap:  

Reply

Marsh Posté le 22-10-2010 à 19:44:30    

help :'(

Reply

Marsh Posté le 23-10-2010 à 14:24:54    

up

Reply

Marsh Posté le 23-10-2010 à 18:57:11    

au secoursssssssssssssssss

Reply

Marsh Posté le 26-10-2010 à 12:19:38    

Essaye de remplacer les <?= par des <?php echo

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed