Witam.

Robię aplikację na którą będzie się składało kilka podstron z formularzami. Jedna podstrona natomiast będzie funkcjonowała na zasadzie ajax. Czyli:
pusta strona + przycisk "dodaj pozycje" -----[ naciskam przycisk]---> za pomocą ajaxa pokazuje formularz z przyciskiem "dodaj" ---[naciskam dodaj]---> ...
no i właśnie. Ja sobie wymyśliłem to tak:
---> za pomocą ajaxa wysyłam dane z formularza do pliku get.php ----> tworze dynamicznie obiekt który przechowuje dane pobrane z post ---> serializuje obiekt, zapisuję go do sesji i wyswietlam dane za pomocą echo ----> wyswietlone dane są przesyłane z powrotem do zmiennej i dodawane jako pozycja do diva.

Trochę to zagmatwałem. Najlepiej pokażę kod:
  1. <?php session_set_cookie_params(60*60*24*7); session_start(); ?>
  2. <script type="text/javascript" src="jquery.js"></script>
  3. <script type="text/javascript">
  4.  
  5. $(document).ready(function() {
  6.  
  7. var counter =
  8. <?php
  9. if(count($_SESSION) == 0) echo "0";
  10. else echo $_SESSION["counter"];
  11. ?>
  12. ;
  13.  
  14. $("#go").click(function(){
  15.  
  16.  
  17.  
  18. var zapytanie = $.ajax({
  19. url: "get.php",
  20. type: "POST",
  21. async: false,
  22. data: $('form').serialize() + '&counter=' +counter,
  23. error: function() {
  24. alert("Błąd");
  25. },
  26. success: function() {
  27. counter++;
  28. }
  29. }).responseText;
  30.  
  31. $("#text").append('<p id="item' + counter + '">' + zapytanie + counter + '</p>');
  32. $('#item' + counter).hide().fadeIn(500);
  33.  
  34. });
  35.  
  36. });
  37.  
  38. </script>
  39. </head>
  40.  
  41. <div id="text">
  42.  
  43. <?php
  44.  
  45. include("class.php");
  46.  
  47. if(count($_SESSION) > 0) {
  48.  
  49. for ($i=0; $i<=count($_SESSION)-2; $i++) {
  50.  
  51. $a = $_SESSION[$arr[$i]];
  52. $b = unserialize($a);
  53. echo "<p id='item".$i."'>".$b->showData()."</p>";
  54. }
  55. }
  56.  
  57. ?>
  58.  
  59. </div>
  60.  
  61. <form method="post" action="#">
  62. <input type="text" name="imie" value="imie">
  63. <input type="text" name="nazwisko" value="nazwisko">
  64. <a href="#" id="go">Go</a>
  65. </form>
  66.  
  67. </body>
  68.  
  69. </html>


Klasa:
  1. <?php
  2.  
  3. class item {
  4.  
  5. private $imie;
  6. private $nazwisko;
  7.  
  8. function getImie() {
  9. $this->imie = $_POST['imie'];
  10. }
  11. function getNazwisko() {
  12. $this->nazwisko = $_POST['nazwisko'];
  13. }
  14.  
  15. function setData() {
  16. $this->getImie();
  17. $this->getNazwisko();
  18. }
  19.  
  20. function showData() {
  21. //$this->getImie();
  22. //$this->getNazwisko();
  23.  
  24. return "Cześć ".$this->imie." ".$this->nazwisko;
  25.  
  26. }
  27. }
  28.  
  29.  
  30. $arr = array(
  31. 0 => "zero",
  32. 1 => "jeden",
  33. 2 => "dwa",
  34. 3 => "trzy",
  35. 4 => "cztery",
  36. 5 => "piec",
  37. 6 => "szczesc",
  38. 7 => "siedem",
  39. 8 => "osiem",
  40. 9 => "dziewiec",
  41. 10 => "dziesiec",
  42. 11 => "jedenascie",
  43. 12 => "dwanascie",
  44. 13 => "trzynascie",
  45. 14 => "czternascie",
  46. 15 => "pietnascie",
  47. 16 => "szesnascie",
  48. 17 => "siedemnascie",
  49. 18 => "osiemnascie",
  50. 19 => "dziewietnascie",
  51. 20 => "dwadziescia"
  52. );
  53. ?>


get.php
  1. <?php
  2.  
  3. include("class.php");
  4.  
  5. $item = new item;
  6. $item->setData();
  7.  
  8. $_SESSION["counter"] = $_POST["counter"];
  9. $_SESSION[$arr[$_POST["counter"]]] = serialize($item);
  10.  
  11. echo $item->showData();
  12. ?>


I tutaj pytanie. Czy rozwiązania:
    przesyłanie danych do osobnego pliku
    serializacja i deserializacja
    trochę na sztywno nazywanie zmiennych sesyjnych
są dobre?

Od razu uprzedzam że baza i pliki nie wchodzą w gre