Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> php, ajax - przesłanie danych
boosik01
post 21.11.2017, 13:20:27
Post #1





Grupa: Zarejestrowani
Postów: 91
Pomógł: 1
Dołączył: 19.08.2009

Ostrzeżenie: (10%)
X----


Witam.
Przesyłam dane z jednego pliku (formularz) o drugiego za pomocą ajax. W drugim pliku dane z formularza wyświetlają się ładnie, lecz problem gdy chce pobrać inne
dane które są nie z tego pliku.

Mam tak:
skrypt1.php (includuje smarty i inne podstawowe dane o użytkowniku)
skrypt2.tpl (tu mam formularz i skrypt ajax za pomocą którego wysyłam żądanie do skrypt3.php) - plik widoku
skrypt3.php (plik tak jakby główny który wykonuje wszystkie operacje danej akcji. (np. rejestracja), tu też potrzebuje pobrać pewne dane użytkownika oraz
smarty, aby wyświetlić dane w pliku widoku (skrypt2.tpl))

plik skrypt2.tpl
  1. {literal}
  2. <script>
  3. $(document).ready(function(){
  4. $('#register').submit(function(){
  5.  
  6. $('#response').html("<b>Ładujemy dane...</b>");
  7.  
  8. $.ajax({
  9. type: 'POST',
  10. url: 'skrypt3.php',
  11. data: $(this).serialize(),
  12.  
  13. success: function(data) {
  14. $('#response').html(data);
  15. }
  16. })
  17.  
  18. return false;
  19.  
  20. });
  21. });
  22. </script>
  23. {/literal}
  24. <div id="box">
  25.  
  26. <form action="" method="post" id="register">
  27.  
  28. <div style="float: left; width: 50%">
  29.  
  30. <p> Login: (min. 5 znaków, max. 16)</p>
  31. <input type="text" name="login"/>
  32.  
  33. <p> Hasło: (min. 4 znaki) </p>
  34. <input type="password" name="password"/>
  35.  
  36. <p> Powtórz hasło: </p>
  37. <input type="password" name="r_password"/>
  38.  
  39. <p> Email: (Potrzebny by odzyskać hasło) </p>
  40. <input type="text" name="email"/>
  41.  
  42. </div>
  43.  
  44.  
  45.  
  46.  
  47. <div style="float: left; width: 100%; margin-top: 20px;">
  48. <input type="hidden" name="check" value="1" />
  49. <button type="submit" name="submit" value="1">Zarejestruj się!</button>
  50.  
  51. <div id='response' style="margin-top: 20px; " > {$result} </div>
  52.  
  53. </div>
  54. </form>
  55.  
  56. </div>
  57.  
  58.  


plik skrypt3.php

  1. <?php
  2. $aa = 'abbaa';
  3. $tpl->assign("result",$aa);
  4. ?>


dostaje błąd:
Fatal error: Call to a member function assign() on a non-object in C:\WebServ\httpd\scripts_php\skrypt3.php on line 3

Proszę o jakieś porady.


Pozdrawiam.

Ten post edytował boosik01 21.11.2017, 13:21:18
Go to the top of the page
+Quote Post
nospor
post 21.11.2017, 13:24:05
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




zmienna $tpl nie jest obiektem smarty. Tworzysz w ogole gdzies te zmienna w tym skrypcie 3? Bo w kodzie co pokazales nie tworzysz, a sama w magiczny sposob sie nie utworzy


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
boosik01
post 21.11.2017, 13:27:32
Post #3





Grupa: Zarejestrowani
Postów: 91
Pomógł: 1
Dołączył: 19.08.2009

Ostrzeżenie: (10%)
X----


Tak tworzę, przepraszam nie dopisałem tego.
Tworze ją w pliku głównym index.php
  1. $tpl = new Smarty;


Bez ajaxu smarty działa łdnie, gdy próbuje zrobić wszystko 'dynamicznie' tak jakby wtedy skrypt3 nie widzi smarty

Ten post edytował boosik01 21.11.2017, 13:28:27
Go to the top of the page
+Quote Post
nospor
post 21.11.2017, 13:29:21
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Co z tego, ze tworzysz w pliku index.php skoro skrypt3 odpalasz bezposrednio z pominieciem index.php....
url: 'skrypt3.php',
plik index.php sie nie laduje w ogole, bo niby czemu?


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
boosik01
post 21.11.2017, 13:30:45
Post #5





Grupa: Zarejestrowani
Postów: 91
Pomógł: 1
Dołączył: 19.08.2009

Ostrzeżenie: (10%)
X----


No w sumie... O tym pomyślałem wink.gif

Lecz może jakieś porady ? Czy wychodzi na to że trzeba wszystko na nowo includować ?
Go to the top of the page
+Quote Post
viking
post 21.11.2017, 13:30:50
Post #6





Grupa: Zarejestrowani
Postów: 6 378
Pomógł: 1116
Dołączył: 30.08.2006

Ostrzeżenie: (0%)
-----


AJAX to nic więcej jak niezależny request. Tak jakbyś sobie wpisał w przeglądarce adres skrypt3.php. Jak już to zrozumiesz to z górki.


--------------------
Go to the top of the page
+Quote Post
boosik01
post 21.11.2017, 13:32:59
Post #7





Grupa: Zarejestrowani
Postów: 91
Pomógł: 1
Dołączył: 19.08.2009

Ostrzeżenie: (10%)
X----


Rozumiem. Chodzi mi o to czy może masz jakiś pomysł jak to wszystko inaczej zrobić? czy zostaje dołączanie plików na nowo?
Go to the top of the page
+Quote Post
viking
post 21.11.2017, 13:34:27
Post #8





Grupa: Zarejestrowani
Postów: 6 378
Pomógł: 1116
Dołączył: 30.08.2006

Ostrzeżenie: (0%)
-----


Najlepiej aby był zawsze jeden punkt wejścia do aplikacji - index.php i on wszystkim zarządzał. Jeśli masz naście plików to niestety w każdym musisz dołączyć co tam potrzeba.


--------------------
Go to the top of the page
+Quote Post
boosik01
post 21.11.2017, 13:38:08
Post #9





Grupa: Zarejestrowani
Postów: 91
Pomógł: 1
Dołączył: 19.08.2009

Ostrzeżenie: (10%)
X----


No dobrze. Próbuje dołączać smarty. Wszystko gra. Tylko ze znowu musze dopisać:
  1. $tpl->display('../templates/skrypt2.tpl');

czyli ten plik widoku by przekazać dane do tego skryptu.
Wtedy mam dwa razy to samo wyświetlenie strony czyli w tym wypadku dwa formularze rejestracyjne
Go to the top of the page
+Quote Post
viking
post 21.11.2017, 13:41:55
Post #10





Grupa: Zarejestrowani
Postów: 6 378
Pomógł: 1116
Dołączył: 30.08.2006

Ostrzeżenie: (0%)
-----


To nie generuj w tym pliku całego szablonu tylko jakąś konkretną akcję - walidację, rejestrację i przesyłaj dane jako JSON.


--------------------
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 19.07.2025 - 09:51