Probleme de communication PHP/JS 'Edit in place'

Probleme de communication PHP/JS 'Edit in place' - HTML/CSS - Programmation

Marsh Posté le 24-07-2008 à 14:52:10    

Bonjour a tous,
 
Je cherche a faire de l'edit in place sur les champs de texte d'un site. Seulement avec les codes que j'ai trouve je ne peux modifier que les champs selon un nom. Et je voudrais pouvoir tous les modifier dynamiquement.
Voici le code :
 

Code :
  1. Event.observe(window, 'load', init, false);
  2. function init()
  3. {
  4.         makeEditable(<? echo $id[$i] ?> );
  5.        // C'est ici le probleme, je ne sais pas comment recevoir la variable envoyer par le fichier php (cf plus bas)
  6. }
  7. function makeEditable(id)
  8. {
  9. Event.observe(id, 'click', function(){edit($(id))}, false);
  10. Event.observe(id, 'mouseover', function(){showAsEditable($(id))}, false);
  11. Event.observe(id, 'mouseout', function(){showAsEditable($(id), true)}, false);
  12. }
  13. function edit(obj)
  14. {
  15. Element.hide(obj);
  16. var textarea = '<div id="'+obj.id+'_editor"><textarea id="'+obj.id+'_edit" name="'+obj.id+'" rows="4" cols="60">'+obj.innerHTML+'</textarea>';
  17. var button  = '<div><input id="'+obj.id+'_save" type="button" value="Modifier" /> - <input id="'+obj.id+'_cancel" type="button" value="Annuler" /></div></div>';
  18. new Insertion.After(obj, textarea+button);
  19. Event.observe(obj.id+'_save', 'click', function(){saveChanges(obj)}, false);
  20. Event.observe(obj.id+'_cancel', 'click', function(){cleanUp(obj)}, false);
  21. }


Et le php

Code :
  1. <html>
  2. <head>
  3. <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
  4. <title>Edit-in-Place with Ajax</title>
  5. <link href="editinplace.css" rel="Stylesheet" type="text/css" />
  6. <script src="prototype.js" type="text/javascript"></script>
  7. <script src="editinplace.js" type="text/javascript"></script> 
  8. </head>
  9. <body>
  10. <h1>Edit-in-place</h1>
  11. <?php
  12. $id = array();
  13. $words = array();
  14. $words[0] = "desc";
  15. $words[1] = "pizza";
  16. for ($i; $words[$i]; $i++)
  17. {
  18.  id[$i] = $words[$i];
  19. }
  20. ?>
  21. <p id=<?php echo $id[$i++] ?>>Dashing through the snow on a one horse open sleigh.</p>
  22. <p id<?php echo $id[$i++] ?>=>je kiff la pizz parce que suis rital</p>
  23. </body>
  24. </html>


 
 
Des idees pour que je puisse communiquer d'un langage a l'autre la variable $id[$i]...?
 
Ciao et Merci

Reply

Marsh Posté le 24-07-2008 à 14:52:10   

Reply

Marsh Posté le 24-07-2008 à 14:58:53    

Tu parcoures tes éléments <p> en DOM dans ton init(), tu boucles dessus et tu récupères l' id de chaque élément.

Reply

Marsh Posté le 24-07-2008 à 15:12:10    

Merci Sebondus,
 
Pourrais tu me donner un petit exemple de ce que tu me dis, j'ai deja essayer un truc comme ca :

Code :
  1. while (i)
  2. {
  3. makeEditable(<? echo $id[$i] ?> );
  4. }


ou quelque chose comme ca... Mais ca marche pas. Etant plutot une brute en C/C++ je ne connais pas le DOM js...  
 
Ps : Nice la signature ^^

Reply

Marsh Posté le 24-07-2008 à 16:02:49    

Please :)

Reply

Marsh Posté le 24-07-2008 à 17:53:10    

var balise_p= document.getElementsByTagName('p');  
 

Code :
  1. for(i=1;i<balise_p.length;i++)
  2. {
  3.     makeEditable(balise_p[i].id);
  4. }


 
A la bourrin, je sais pas si ça marche, je suis overbooké  :o  
Je vois ça avec toi ce soir si tu veux.

Reply

Marsh Posté le 18-12-2008 à 04:34:50    

Bonjour c'est le seul topic du web à parler de ce problème avec makeEditable de l'edit in place, j'ai le même problème que Sideo ,je voudrais savoir si tu avais trouvé la solution  Sebondus ?, éventuellement si quelqu'un pouvais poster une solution car je n'y arrive pas de moi même.

Reply

Sujets relatifs:

Leave a Replay

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