Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
3327 connectés 

  FORUM HardWare.fr
  Programmation
  HTML/CSS

  Rediction php dans div

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Rediction php dans div

n°2031377
yonafunu
Posté le 22-10-2010 à 11:29:06  profilanswer
 

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:

mood
Publicité
Posté le 22-10-2010 à 11:29:06  profilanswer
 

n°2031405
gelatine_v​elue
Posté le 22-10-2010 à 12:23:01  profilanswer
 

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.

n°2031414
yonafunu
Posté le 22-10-2010 à 12:51:07  profilanswer
 

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 :)

n°2031434
gelatine_v​elue
Posté le 22-10-2010 à 14:02:53  profilanswer
 

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.
 

n°2031448
yonafunu
Posté le 22-10-2010 à 14:32:58  profilanswer
 

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 :)
 

n°2031450
gelatine_v​elue
Posté le 22-10-2010 à 14:37:15  profilanswer
 

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

n°2031453
yonafunu
Posté le 22-10-2010 à 14:41:18  profilanswer
 

Merci je te tiens au courant ;)

n°2031465
yonafunu
Posté le 22-10-2010 à 14:59:42  profilanswer
 

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 ?  

n°2031500
Paulp
~, sweet ~
Posté le 22-10-2010 à 15:48:40  profilanswer
 

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
n°2031514
yonafunu
Posté le 22-10-2010 à 16:02:18  profilanswer
 

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>


 
 

mood
Publicité
Posté le 22-10-2010 à 16:02:18  profilanswer
 

n°2031518
yonafunu
Posté le 22-10-2010 à 16:13:34  profilanswer
 

[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 ?

n°2031549
Paulp
~, sweet ~
Posté le 22-10-2010 à 17:52:53  profilanswer
 

Donne le code

n°2031551
yonafunu
Posté le 22-10-2010 à 18:03:43  profilanswer
 

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
n°2031557
Paulp
~, sweet ~
Posté le 22-10-2010 à 18:23:15  profilanswer
 

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

n°2031567
yonafunu
Posté le 22-10-2010 à 18:43:37  profilanswer
 

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:  

n°2031586
yonafunu
Posté le 22-10-2010 à 19:44:30  profilanswer
 

help :'(

n°2031706
yonafunu
Posté le 23-10-2010 à 14:24:54  profilanswer
 

up

n°2031730
yonafunu
Posté le 23-10-2010 à 18:57:11  profilanswer
 

au secoursssssssssssssssss

n°2032238
Paulp
~, sweet ~
Posté le 26-10-2010 à 12:19:38  profilanswer
 

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


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  HTML/CSS

  Rediction php dans div

 

Sujets relatifs
Plus de sujets relatifs à : Rediction php dans div


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)