Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Automatyczne submit
matmaxalez
post
Post #1





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 12.10.2010

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


Witajcie,

Jestem raczej poczatkujacy w PHP... wiec nie jedzcie po mnie.

Mam taki problem:

Na stronie xxx.pl/skrypt.php jest formularz ktory dodaje np. 1 Pkt dla danego usera.
Formularz wyglada tak:
ID:
Punktow:

Wartosci juz sa wpsiane w value. I teraz chce aby osoba ktora wszedla na xxx.pl/skrypt.php nie musiala klikac na DODAJ, tylko zeby samo wejscie dodalo pkt i przenioslo odrazu na np. xxx.pl/index.php.

Mam nadzieje ze mnie zrozumieliscie, pomimo tak chaotycznego wytlumaczena.

Dzieki i pozdro.
Go to the top of the page
+Quote Post
neosatan
post
Post #2





Grupa: Zarejestrowani
Postów: 79
Pomógł: 2
Dołączył: 29.04.2009
Skąd: wrocław

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


no to w takim razie javascript. Przeczytaj o wysyłaniu żądań za pomocą metody get lub post (obie są stosunkowo łatwe). Dalej będzie przekierowanie za pomocą nagłówków. Można to zrobić za pomocą funkcji php header().
  1. <?php
  2. header("Location:index.php, 0");
  3. ?>
  4. <script language="javascript">
  5. function formSubmit()
  6. {
  7. //twoja funckacja oparta na AJAXie
  8. }
  9.  
  10. <form onload="formSubmit()">
  11. <!-- twoj formularz -->
  12. </form>


Musisz sobie to doczytać (bo się nauczysz czegoś ciekawego), ponieważ piszę z palca i szczerze nie pamiętam czy tak dokładnie to wyglądało (chodzi mi o header).
A teraz moje pytanie do wyjadaczy: czy to zadziała jak czas oczekiwania jest 0sekund? w sensie czy przeniesie na inna stronę po wysłaniu żądania, czy po czasie?
btw: potrzebny Ci ten formularz jest jak nie jest on poddawany interakcji z użytkownikiem? może da się to zrobić bardziej po ludzku.


--------------------
C/C++ (ucze się...), PHP (ucze się...), SMARTY(ucze się...), PYTHON(ucze się...), C#(uczę się...), PERL(uczę się...), JavaScript(uczę się...), JAVA(będą mi kazali się uczyć...)... Ja się głównie uczę...
Go to the top of the page
+Quote Post
matmaxalez
post
Post #3





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 12.10.2010

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


No własnie próbowałem, ale nie działa brak formularza, wywala mi błedy :/

Aaa i dzieki sprawdze to zaraz ;-)

Cytat
//twoja funckacja oparta na AJAXie


To w PHP w pelni napisane, nie ma nic w ajaxie

//Niestety nie dziala

Ten post edytował matmaxalez 15.04.2011, 20:55:58
Go to the top of the page
+Quote Post
neosatan
post
Post #4





Grupa: Zarejestrowani
Postów: 79
Pomógł: 2
Dołączył: 29.04.2009
Skąd: wrocław

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


powiedz mi jakie bledy wywala, to pomogę.

A co do PHP i AJAX, to te dwie technologie świetnie działają razem.


--------------------
C/C++ (ucze się...), PHP (ucze się...), SMARTY(ucze się...), PYTHON(ucze się...), C#(uczę się...), PERL(uczę się...), JavaScript(uczę się...), JAVA(będą mi kazali się uczyć...)... Ja się głównie uczę...
Go to the top of the page
+Quote Post
matmaxalez
post
Post #5





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 12.10.2010

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


gdy usuwam formularz i zostawiam sam skrypt wpisujac wartosci tam gdzie trzeba to skrypt wgle nie dziala. A to co mi podałes, niestety nie dziala :/ Robilem bez header ale tez nie idzie. Zadnego bledu nie wywala, poprostu nie dziala
Go to the top of the page
+Quote Post
markonix
post
Post #6





Grupa: Zarejestrowani
Postów: 2 707
Pomógł: 290
Dołączył: 16.12.2008
Skąd: Śląsk

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


Podaj kod, który dodaje te punkty.

Sugestie co do samego skryptu bez formularza są jak najbardziej słuszne...
Po co wysyłać formularz, który wykonuje jakąś funkcję jak możesz po prostu po wejściu wykonać tę funkcję (nic nie musisz wywoływać, po prostu wstawiasz na początek strony).


--------------------
Go to the top of the page
+Quote Post
matmaxalez
post
Post #7





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 12.10.2010

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


Punkty dalem jako przyklad, skrypt daje surowce (silnik xnova)
  1. <form action="add_money.php" method="post">
  2. <input type="hidden" name="mode" value="addit">
  3. <table width="305">
  4. <tbody>
  5. <th width="130">ID</th>
  6. <th width="155"><input name="id" type="text" value="1" size="3" /></th>
  7. </tr><tr>
  8. <th>Metal</th>
  9. <th><input name="metal" type="text" value="1000" /></th>
  10. </tr><tr>
  11. <th>Krysztal</td>
  12. <th><input name="cristal" type="text" value="1000" /></th>
  13. </tr><tr>
  14. <th>deuter</td>
  15. <th><input name="deut" type="text" value="1000" /></th>
  16. </tr><tr>
  17. <th colspan="2"><input type="Submit" value="Dodaj" /></th>
  18. </tbody>
  19. </tr>
  20. </table>
  21. </form>
  22. <?php
  23.  
  24. /**
  25.  * add_money.php
  26.  *
  27.  * @version 1.1
  28.  * @copyright 2008 By Chlorel for XNova
  29.  * portion to e-Zobar<form action="add_money.php" method="post">
  30. <input type="hidden" name="mode" value="addit">
  31. <table width="305">
  32. <tbody>
  33. <th width="130">ID</th>
  34. <th width="155"><input name="id" type="text" value="1" size="3" /></th>
  35. </tr><tr>
  36. <th>Metal</th>
  37. <th><input name="metal" type="text" value="1000" /></th>
  38. </tr><tr>
  39. <th>Krysztal</td>
  40. <th><input name="cristal" type="text" value="1000" /></th>
  41. </tr><tr>
  42. <th>deuter</td>
  43. <th><input name="deut" type="text" value="1000" /></th>
  44. </tr><tr>
  45. <th colspan="2"><input type="Submit" value="Dodaj" /></th>
  46. </tbody>
  47. </tr>
  48. </table>
  49. </form>
  50.  <?php
  51.  
  52. /**
  53.  * add_money.php
  54.  *
  55.  * @version 1.1
  56.  * @copyright 2008 By Chlorel for XNova
  57.  * portion to e-Zobar
  58.  */
  59.  
  60. define('INSIDE' , true);
  61. define('INSTALL' , false);
  62. define('IN_ADMIN', true);
  63.  
  64. $xnova_root_path = './../';
  65. include($xnova_root_path . 'extension.inc');
  66. include($xnova_root_path . 'common.' . $phpEx);
  67.  
  68. if ($user['authlevel'] >= 0) {
  69. includeLang('admin');
  70.  
  71. $mode = $_POST['mode'];
  72.  
  73. $PageTpl = gettemplate("admin/ad_mone");
  74. $parse = $lang;
  75.  
  76. if ($mode == 'addit') {
  77. $id = $_POST['id'];
  78. $metal = $_POST['metal'];
  79. $cristal = $_POST['cristal'];
  80. $deut = $_POST['deut'];
  81.  
  82. $QryUpdatePlanet = "UPDATE {{table}} SET ";
  83. $QryUpdatePlanet .= "`metal` = `metal` + '". $metal ."', ";
  84. $QryUpdatePlanet .= "`crystal` = `crystal` + '". $cristal ."', ";
  85. $QryUpdatePlanet .= "`deuterium` = `deuterium` + '". $deut ."' ";
  86. $QryUpdatePlanet .= "WHERE ";
  87. $QryUpdatePlanet .= "`id` = '". $id ."' ";
  88. doquery( $QryUpdatePlanet, "planets");
  89.  
  90. AdminMessage ( $lang['adm_am_done'], $lang['adm_am_ttle'] );
  91. }
  92. $Page = parsetemplate($PageTpl, $parse);
  93.  
  94. display ($Page, $lang['adm_am_ttle'], false, '', true);
  95. } else {
  96. AdminMessage ( $lang['sys_noalloaw'], $lang['sys_noaccess'] );
  97. }
  98.  
  99. ?>
  100. */
  101.  
  102. define('INSIDE' , true);
  103. define('INSTALL' , false);
  104. define('IN_ADMIN', true);
  105.  
  106. $xnova_root_path = './../';
  107. include($xnova_root_path . 'extension.inc');
  108. include($xnova_root_path . 'common.' . $phpEx);
  109.  
  110. if ($user['authlevel'] >= 0) {
  111. includeLang('admin');
  112.  
  113. $mode = $_POST['mode'];
  114.  
  115. $PageTpl = gettemplate("admin/ad_mone");
  116. $parse = $lang;
  117.  
  118. if ($mode == 'addit') {
  119. $id = $_POST['id'];
  120. $metal = $_POST['metal'];
  121. $cristal = $_POST['cristal'];
  122. $deut = $_POST['deut'];
  123.  
  124. $QryUpdatePlanet = "UPDATE {{table}} SET ";
  125. $QryUpdatePlanet .= "`metal` = `metal` + '". $metal ."', ";
  126. $QryUpdatePlanet .= "`crystal` = `crystal` + '". $cristal ."', ";
  127. $QryUpdatePlanet .= "`deuterium` = `deuterium` + '". $deut ."' ";
  128. $QryUpdatePlanet .= "WHERE ";
  129. $QryUpdatePlanet .= "`id` = '". $id ."' ";
  130. doquery( $QryUpdatePlanet, "planets");
  131.  
  132. AdminMessage ( $lang['adm_am_done'], $lang['adm_am_ttle'] );
  133. }
  134. $Page = parsetemplate($PageTpl, $parse);
  135.  
  136. display ($Page, $lang['adm_am_ttle'], false, '', true);
  137. } else {
  138. AdminMessage ( $lang['sys_noalloaw'], $lang['sys_noaccess'] );
  139. }
  140.  
  141. ?>
Go to the top of the page
+Quote Post
markonix
post
Post #8





Grupa: Zarejestrowani
Postów: 2 707
Pomógł: 290
Dołączył: 16.12.2008
Skąd: Śląsk

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


  1. $QryUpdatePlanet = "UPDATE {{table}} SET ";
  2. $QryUpdatePlanet .= "`metal` = `metal` + '". $metal ."', ";
  3. $QryUpdatePlanet .= "`crystal` = `crystal` + '". $cristal ."', ";
  4. $QryUpdatePlanet .= "`deuterium` = `deuterium` + '". $deut ."' ";
  5. $QryUpdatePlanet .= "WHERE ";
  6. $QryUpdatePlanet .= "`id` = '". $id ."' ";
  7. doquery( $QryUpdatePlanet, "planets");
  8.  

Jak można się domyśleć to kawałek kodu, który wykonuje dodanie do bazy.
Pozmieniaj zmienne na wartości.

  1. include($xnova_root_path . 'extension.inc');
  2. include($xnova_root_path . 'common.' . $phpEx);

Ten kawałek na pewno też musi zostać.


--------------------
Go to the top of the page
+Quote Post
matmaxalez
post
Post #9





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 12.10.2010

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


No własnie to zmienialem i nic :/

Mógłbyś Ty zrobić np w:

  1. $QryUpdatePlanet .= "`metal` = `metal` + '". $metal ."', ";


Bo ja zmieniłem wartosc na np. 100 zamiast $metal i wtedy nie dziala :/ tak samo z metal robilem. O co moze chodzic?

//Jednak trzeba formularz, i zeby uzytkownik mogl wpisac swoje ID

Ten post edytował matmaxalez 16.04.2011, 00:17:56
Go to the top of the page
+Quote Post
neosatan
post
Post #10





Grupa: Zarejestrowani
Postów: 79
Pomógł: 2
Dołączył: 29.04.2009
Skąd: wrocław

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


Co za bezsens. Sry za poprzednie zadanie. Użytkownik nie powinien wpisywać własnego ID w formularzu.
Co do xnovy. Kiedyś pracowałem z tym silnikiem i muszę stwierdzić, że widziałem lepiej napisane (ale autorskie i chyba nikt ich nie udostępni :/).

A jak nie działa z podstawieniem to po prostu przed sklejeniem zapytania przypisz do zmiennych wartości. np $metal = 100;

btw, weźcie i mnie postrzelcie, ale metal (kolumna w sql) jest raczej typu INT, więc po co te apostrofy?

użyj echo mysql_error(); po wykonaniu zapytania.


--------------------
C/C++ (ucze się...), PHP (ucze się...), SMARTY(ucze się...), PYTHON(ucze się...), C#(uczę się...), PERL(uczę się...), JavaScript(uczę się...), JAVA(będą mi kazali się uczyć...)... Ja się głównie uczę...
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 Aktualny czas: 21.08.2025 - 13:59