Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Wysyłanie danych z formularza...
lukesh
post 18.02.2007, 23:43:48
Post #1





Grupa: Zarejestrowani
Postów: 113
Pomógł: 14
Dołączył: 25.08.2006

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


Witam!

Chciałbym zapytać, jak będzie wyglądał skrypt, który prześle dane z formularza metodą POST do dowolnego pliku, nie przeładowując przy tym strony?

Dla przykładu, prosty formularz:

  1. <form method="post" action="akcja.php">
  2. <input type="text" name="nazwa">
  3. <input type="submit" value="OK">
  4. </form>


Standardowo, przeglądarka przejdzie na stronę akcja.php, gdzie zawartość pola "nazwa" zostanie przekazana.

Jak tego uniknąć? Chodzi mi głównie o skrypt JS, który prześle tę informację do pliku akcja.php i wyświetli plik akcja.php, który może wyglądać np. tak:

  1. <?php
  2. echo "$nazwa";
  3. ?>


Pozdrawiam,
z góry dzięki za pomoc!


--------------------
Edumemo.pl - Nauka Języków Obcych
Go to the top of the page
+Quote Post
kriqs
post 19.02.2007, 00:50:35
Post #2





Grupa: Zarejestrowani
Postów: 148
Pomógł: 0
Dołączył: 31.05.2006

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


dzial jest dobry wiec wiesz czego szukasz ale ci sie nie chce smile.gif poszukaj o "advAjax" znajdziesz napewno smile.gif

pozdrawiam


--------------------
Pozdrawiam
kriqs

mam nadzieje ze pomoglem :)
Go to the top of the page
+Quote Post
lukesh
post 19.02.2007, 02:45:17
Post #3





Grupa: Zarejestrowani
Postów: 113
Pomógł: 14
Dołączył: 25.08.2006

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


Witam ponownie!

Nie interesują mnie żadne gotowe AJAKSY, jak np. advAjax czy mintAjax... Chciałem zrobić coś swojego, aby użytkownik nie musiał pobierać pliku z niepotrzebnymi mu do niczego funkcjami...

Przeszukałem trochę internat i na podstawie stron: http://developer.mozilla.org/pl/docs/AJAX:Na_pocz%C4%85tek i http://www.captain.at/howto-ajax-form-post-request.php udało mi się stworzyć prosty skrypt, który przesyła dane z formularza do pliku PHP, nieprzechodząc do kolejnej strony...

Oto kod pliku html:

  1. <script type="text/javascript" language="javascript">
  2. var http_request = false;
  3. function makePOSTRequest(url, parameters) {
  4. http_request = false;
  5. if (window.XMLHttpRequest) {
  6. http_request = new XMLHttpRequest();
  7. if (http_request.overrideMimeType) {
  8. http_request.overrideMimeType('text/html');
  9. }
  10. } else if (window.ActiveXObject) {
  11. try {
  12. http_request = new ActiveXObject("Msxml2.XMLHTTP");
  13. } catch (e) {
  14. try {
  15. http_request = new ActiveXObject("Microsoft.XMLHTTP");
  16. } catch (e) {}
  17. }
  18. }
  19.  
  20. http_request.onreadystatechange = function(){
  21. if (http_request.readyState == 1) {
  22. document.getElementById('div').innerHTML = "Ładowanie...";
  23. }
  24. if (http_request.readyState == 4) {
  25. if (http_request.status == 200) {
  26. result = http_request.responseText;
  27. document.getElementById('div').innerHTML = result;
  28. }
  29. else {
  30. document.getElementById('div').innerHTML = "Wystąpił błąd!";
  31. }
  32. }
  33. };
  34.  
  35. http_request.open('POST', url, true);
  36. http_request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
  37. http_request.send(parameters);
  38.  
  39. }
  40.  
  41. function get() {
  42. var dane = "tekst=" + encodeURIComponent( document.getElementById("tekst").value );
  43. makePOSTRequest('post.php', dane);
  44. }
  45. </head>
  46. <form action="java script:get();">
  47. <textarea id="tekst"></textarea><br>
  48. <input type="submit" name="button" value="Wyślij">
  49. </form>
  50. <br>
  51. Tekst: <div id="div"></div>
  52. </body>
  53. </html>


I plik PHP (post.php):

  1. <?
  2. echo "$tekst";
  3. ?>


Wszystko działa tak, jak powinno, ale nie jestem do końca pewien, czy kod jest dobrze napisany... Nigdy wcześniej nie miałem styczności z JS, nie modyfikowałem żadnego innego kodu, nie mam o tym najmniejszego pojęcia... Ten kod starałem się napisać intuicyjnie, myśląc logicznie... Chyba się udało. smile.gif Bynajmniej - proszę o jakieś komentarze.

Pozdrawiam!


--------------------
Edumemo.pl - Nauka Języków Obcych
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: 10.07.2025 - 07:58