Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: JavaScript i XML
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
moczymorda
W bazie danych mam zapisaną wartość:

  1. <book><label>Od powiedź od: </label><from>Wujekstefan</from>
  2. <label>dodane </label><date>2009-11-26 o godz. 11:41:51</date>
  3. <body>Super podoba mi sie ta książka</body>
  4. </book>
  5. <book><label>Od powiedź od: </label><from>Wujekstefan</from>
  6. <label>dodane </label><date>2009-11-26 o godz. 11:41:51</date>
  7. <body>Super podoba mi sie ta książka</body>
  8. </book>
  9. <book><label>Od powiedź od: </label><from>Wujekstefan</from>
  10. <label>dodane </label><date>2009-11-26 o godz. 11:41:51</date>
  11. <body>Super podoba mi sie ta książka</body>
  12. </book>


wartość ta ładowana jest do forma dokładniej do textarea. Odczytuje sobie tą wartość i "parsuje".

  1. var date = document.getElementById('form[zadanie_historia]').value;
  2. var date = date.replace(/<book>/g, '<div id=\"book\">');
  3. var date = date.replace(/<\/book>/g, '<\/div>');
  4. var date = date.replace(/<body>/g, '<div id=\"body\">');
  5. var date = date.replace(/<\/body>/g, '<\/div>');
  6.  
  7. document.all.cont.innerHTML = date;


Chciałbym jakoś dodać do <div id="book"> numer czyli <div id="book1">. Ponieważ chce użyć opcji Pokaz/Ukryj.

Zakaz używania jQuery, mootools itd tylko javascript ponieważ użycie wymienionych bibliotek powoduje błąd w skrypcie. Nie można także przerobić zapisywania "XML`a" do bazy danych. To musi działać na tym co jest. Jestem w stanie zapłacić za pomoc.

Moje gg to: 4196064

darko
  1. var iter = 1;
  2. function parseit() {
  3. var date = document.getElementById('form[zadanie_historia]').value;
  4. var temp = '<div id=\"book'+iter+'\">';
  5. var date = date.replace(/<book>/g, temp);
  6. iter++;
  7.  
  8. var date = date.replace(/<\/book>/g, '<\/div>');
  9. var date = date.replace(/<body>/g, '<div id=\"body\">');
  10. var date = date.replace(/<\/body>/g, '<\/div>');
  11.  
  12. document.all.cont.innerHTML = date;
  13. }
  14. parseit();

questionmark.gif
moczymorda
W takim przypadku zamienia wszystkie na <div id="book1">
darko
Daj spokój...

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  5. </head>
  6. <body>
  7. <?php
  8. $data = "<book><label>Od powiedź od: </label><from>Wujekstefan</from>
  9. <label>dodane </label><date>2009-11-26 o godz. 11:41:51</date>
  10. <body>Super podoba mi sie ta książka</body>
  11. </book>
  12. <book><label>Od powiedź od: </label><from>Wujekstefan</from>
  13. <label>dodane </label><date>2009-11-26 o godz. 11:41:51</date>
  14. <body>Super podoba mi sie ta książka</body>
  15. </book>
  16. <book><label>Od powiedź od: </label><from>Wujekstefan</from>
  17. <label>dodane </label><date>2009-11-26 o godz. 11:41:51</date>
  18. <body>Super podoba mi sie ta książka</body>
  19. </book>";
  20. ?>
  21.  
  22. <form action="NAZWA_SKRYPTU.php" method="post">
  23. <textarea rows="40" cols="60" id="target_ta">
  24. <?php echo $data; ?>
  25. </textarea><br />
  26. <input type="button" name="change" value="change" onclick="parseit();" /><br />
  27. <!-- <input type="submit" name="submit" value="zapisz" /> -->
  28. </form>
  29.  
  30. <script>
  31. function parseit() {
  32. var data = document.getElementById('target_ta').value;
  33. var temp = data;
  34. for(e=1; e <= data.match(/<book>/g).length; e++) {
  35. temp = temp.replace('<book>', "<div id=\"book"+e+"\">");
  36. temp = temp.replace('<body>', "<div id=\"body"+e+"\">");
  37. }
  38. temp = temp.replace(/<\/book>/g, '<\/div>');
  39. temp = temp.replace(/<\/body>/g, '<\/div>');
  40. document.getElementById('target_ta').value = temp;
  41. }
  42. </script>
  43.  
  44. </body>
  45. </html>


smile.gif

W nawiązaniu do PW - oczywiście, że działa, jak trzeba, po prostu nie umiesz skorzystać, proszę bardzo:

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  5. </head>
  6. <body>
  7. <?php
  8. /*
  9. $data = "<book><label>Od powiedź od: </label><from>Wujekstefan</from>
  10. <label>dodane </label><date>2009-11-26 o godz. 11:41:51</date>
  11. <body>Super podoba mi sie ta książka</body>
  12. </book>
  13. <book><label>Od powiedź od: </label><from>Wujekstefan</from>
  14. <label>dodane </label><date>2009-11-26 o godz. 11:41:51</date>
  15. <body>Super podoba mi sie ta książka</body>
  16. </book>
  17. <book><label>Od powiedź od: </label><from>Wujekstefan</from>
  18. <label>dodane </label><date>2009-11-26 o godz. 11:41:51</date>
  19. <body>Super podoba mi sie ta książka</body>
  20. </book>";
  21. */
  22. $data = "
  23. <message><label>Odpowiedź od: </label><from>javascript javascript </from><label>przesłana </label> <date>2009-11-29 o godz. 21:45:21</date>
  24. <label>podczas czynności: </label><stage>Weryfikacja wykonalności</stage><body>Dziękujemy za przesłanie zadania.
  25. Proszę o uszczegółowienie w zakresie:
  26. - ale o co biega? Z pozdrowieniami
  27. Asystent</body></message>
  28.  
  29. <message><label>Odpowiedź od: </label><from>XXXXXXX YYYYYYYYY</from><label>przesłana </label> <date>2009-11-29 o godz. 21:45:53</date>
  30. <label>podczas czynności: </label><stage>Uszczegółowienie</stage><body>O to biega, żeby się dobrze wszystko rozwijało.
  31. Pozdrawiam
  32. ZZZZZZZZZZ</body></message>";
  33. ?>
  34.  
  35. <form action="forum27.php" method="post">
  36. <textarea rows="40" cols="60" id="target_ta">
  37. <?php echo $data; ?>
  38. </textarea><br />
  39. <input type="button" name="change" value="change" onclick="parseit();" /><br />
  40. <!-- <input type="submit" name="submit" value="zapisz" /> -->
  41. </form>
  42.  
  43. <script>
  44. function parseit() {
  45. var data = document.getElementById('target_ta').value;
  46. var temp = data;
  47. for(e=1;e<=data.match(/<message>/g).length;e++) {
  48. //temp = temp.replace('<book>', "<div id=\"book"+e+"\">");
  49. //temp = temp.replace('<body>', "<div id=\"body"+e+"\">");
  50. temp = temp.replace('<message>', "<div id=\"message"+e+"\">");
  51. }
  52. //temp = temp.replace(/<\/book>/g, '<\/div>');
  53. //temp = temp.replace(/<\/body>/g, '<\/div>');
  54. temp = temp.replace(/<\/message>/g, '<\/div>');
  55. document.getElementById('target_ta').value = temp;
  56. }
  57. </script>
  58.  
  59. </body>
  60. </html>
moczymorda
Ok już wszystko jest dobrze. Dziękuje Ci za pomoc.

Jak widać tekst w <body> jest w osobnych liniach:

  1. <body>O to biega, żeby się dobrze wszystko rozwijało.
  2. Pozdrawiam
  3. ZZZZZZZZZZ</body>


Po parsowaniu tekst jest w jednej linijce. Można to jakoś rozwiązać?
darko
Jak chcesz wstawić nową linię do textarea, to \n
moczymorda
Ja całość ładuje do diva i tam jest w jednej linijce.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.