Javascript PHP et innerhmtl

Javascript PHP et innerhmtl - HTML/CSS - Programmation

Marsh Posté le 14-04-2008 à 20:22:48    

Bonjour,
 
Je développe actuellement une page qui lorsque je clique sur un titre d'une listbox, affiche un tableau.
 
Pour ce faire j'utilise la fonction onChange.
 
Cependant pour construire le tableau que je dois afficher je dois parser des fichiers binaires qui se trouve sur le serveur. J'ai crée des fonctions PHP pour faire cela cependant d'après certaines sources (trouvé sur Internet) cela n'est pas possible.
 
après certaine recherche j'ai trouvé la fonction "innerhtml" et j'ai fais des tests et ca fonctionne.
 

Code :
  1. <html><head><title>Test</title>
  2. <script type="text/javascript">
  3. <!--
  4. function modifier() {
  5. document.getElementById('monparagraphe').innerHTML = "<?php
  6.          $fp=fopen('data.txt','r');
  7. $donnees = fgets($fp,255);
  8. fclose($fp);
  9. echo 'Le fichier contient : '.$donnees;
  10. echo"<table border='1'><tr><td>test</td><td>test1</td></tr><tr><td>test2</td><td>test3</td></tr></table>";
  11. ?>";
  12. }
  13. //-->
  14. </script>
  15. </head>
  16. <body>
  17. <p id="monparagraphe">Texte</p>
  18. <a href="javascript:modifier()">autre texte</a>
  19. </body>
  20. </html>


 
Je voudrais donc savoir si il était possible à la place de l'ensemble des instructions php d'inclure un fichier qui contient la fonction PHP qui fournira le tableau.
 
Ainsi que la raison pour laquel tout le monde dit que cela fonctionne pas alors que le code ci dessus marche très bien.
 
 
Merci

Reply

Marsh Posté le 14-04-2008 à 20:22:48   

Reply

Marsh Posté le 14-04-2008 à 21:24:33    

si quelqu'un a besoin, voici le code :

Code :
  1. <html><head><title>Test</title>
  2. <script type="text/javascript">
  3. <!--
  4. function modifier() {
  5. var mavariable = "<?php require_once 'test.php'; ?>";
  6. document.getElementById('monparagraphe').innerHTML = mavariable;
  7. }
  8. //-->
  9. </script>
  10. </head>
  11. <body>
  12. <p id="monparagraphe">Texte</p>
  13. <a href="javascript:modifier()">autre texte</a>
  14. </body>
  15. </html>

Reply

Marsh Posté le 14-04-2008 à 22:32:55    

Cependant je n'ai pas eu la réponse a ma deuxième question :
 
Comment se fait il que le code fonctionne vu que le serveur devrait être exécuté uniquement au chargement de la page !
 
Merci

Reply

Marsh Posté le 15-04-2008 à 10:24:52    

heu ça t'es jamais venu à l'esprit de regarder le code source généré (genre clic droite afficher le code source de la page dans ton navigateur)
et là tu regardes et tu comprendras pourquoi ca marche.
 
Un d'une part tu appeles ta fonction php pendant le chargement de la page, et donc tout le bouzin est contenu dans une variable JS (cf code source de la page).
 
Le mieux pour ce que tu cherches à faire (charger le contenu seulement au clic de la souris) c'est de passer par une requete AJAX)

Reply

Marsh Posté le 15-04-2008 à 18:02:55    

Merci pour tes informations et je me suis mis a Ajax !

Reply

Marsh Posté le 16-04-2008 à 15:10:37    

Salut !
 
J'ai un problème du même genre.
 
Sur ma page d'index j'ai :

Code :
  1. <div id="login">
  2.  <?php
  3.   if(isset($_SESSION['login']))
  4.    include('logged.php');
  5.   else
  6.    include('logform.php');
  7.  ?>
  8. </div>


Où "logform.php" contient mon formulaire d'identification.
 
J'ai ensuite un script de vérification :

Code :
  1. function verifLogin()
  2. {
  3. var username = encodeURI(document.logform.user.value);
  4. var password = encodeURI(document.logform.pass.value);
  5. var xhr;
  6. try
  7. {
  8.      xhr = new ActiveXObject("Microsoft.XMLHTTP" );    // essayer Internet Explorer  
  9. }
  10. catch(e)   // Echec
  11. {
  12.     xhr = new XMLHttpRequest() // Autres navigateurs
  13. }
  14. xhr.open('get','login.php?user='+username+'&pass='+password);
  15. xhr.onreadystatechange = function()
  16. {
  17.  if(xhr.readyState == 4)
  18.  {
  19.   var reponse = xhr.responseText;
  20.   if(reponse == 0)
  21.   {
  22.    document.getElementById('login').innerHTML = '<?php include(\'logged.php\'); ?>';
  23.   }
  24.   else
  25.   {
  26.    window.alert('Echec d\'authentification');
  27.    document.getElementById('login').innerHTML = "<?php include(\'logform.php\'); ?>";
  28.   }
  29.  }
  30. };
  31. xhr.send(null);
  32. }


 
Cependant, les includes ne fonctionnent pas.
Je me dis que c'est surement parce que je suis en AJAX coté client et que donc je ne peut pas utiliser de php, mais à ce moment là, je ne vois pas comment faire ...

Reply

Marsh Posté le 19-04-2008 à 15:18:11    

bonjour, je sens que c'est pas juste de vous poser une question au moment ou vous attendez des réponses,
mais il parait que vous êtes tres fort que moi en ça,bref, j'ai une page html ou en dois entrer un login et un mot de passe("pour simplifier un seul) si c correcte il vas me lancer une autre page html où il ya un menu.....
comment faire? sans etre besoin de creer une table compte dans la base de donnée....et d'y acceder pour la vérification . je veux tt simplement un code qui fait la verification avec un login et mot de passe donnés.
merci pour votre temps

Reply

Sujets relatifs:

Leave a Replay

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