Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Przekazywanie zmienych _POST[PHP]
Forum PHP.pl > Forum > Przedszkole
eviance
witam

Borykam się z z przekazaniem zmieniej z fukcji do fukcji, szczerze kiedyś to pisałem ale nie wiem jak to ogarnełem teraz potrzebuje dodać zmieną chciałem łopatologicznie

deklaruje w fukcji przy wprowadzaniu $nr_rej = $_POST["nr_rejs"]; i tu trzyma dane ale przechodząć dalej do funcji powrót nie trzyma tych danych,


pytanie się nasówa czy przy każdej fukcji musze dodawać zmieną $nr_rejs

  1. function pulpit() {
  2. ?>
  3. <center>
  4. <div class="big">
  5. zeskanuj kod zlecenia
  6. </div>
  7.  
  8. <script>
  9. focuser='nr_zlecenia';
  10. </script>
  11.  
  12. <center>
  13. <input type="text" class="semibig" size="14" name="nr_zlecenia" >
  14. </form>
  15.  
  16. <center>
  17. <div class="big">
  18. podaj nr_rej naczepy!!!
  19. </div>
  20.  
  21. <script>
  22. focuser='nr_rej';
  23. </script>
  24.  
  25. <center>
  26. <form action="<?=$_SERVER['PHP_SELF']?>?op=sprawdz" method="POST">
  27. <input type="text" class="semibig" size="14" name="nr_rejs" >
  28. <?
  29. $nr_rej = $_POST["nr_rejs"];
  30. ?>
  31. </form>
  32.  
  33.  
  34. <form method="POST" action="\radio\index.php">
  35. <input type="button" onclick="submit();" value="menu" class="semibig">
  36. </form>
  37. <?
  38. }
  39.  
  40.  
  41. $nr_rej = $_POST["nr_rejs"];
  42. function powrot($rj_container,$typ,$czy_naczepa){
  43. global $mdb;
  44.  
  45. alert($nr_rej);


Pozdrawiam
Łukasz
darko
W php nie ma i nie było funkcji alert, pewnie chodziło Ci o alert w javascript, więc:
<script type="text/javascript>alert('<?php echo $nr_rej;?>');</script>
nie podoba mi się tylko umieszczenie tego w Twoim kodzie. Staraj się nie używać globali. Najlepiej przekazać zmienną $nr_rej funkcji powrot().
nospor
alert($nr_rej);
alert to funkcja js. $nr_rej to zmienna php. Jedno z drugim nie ma żadnego związku. Pokaz lepiej cały kod a nie jakiś wyrwany z kontekstu kawałek, z którego wychodzą same bzdury.
eviance
Cytat(nospor @ 27.11.2012, 10:39:21 ) *
alert($nr_rej);
alert to funkcja js. $nr_rej to zmienna php. Jedno z drugim nie ma żadnego związku. Pokaz lepiej cały kod a nie jakiś wyrwany z kontekstu kawałek, z którego wychodzą same bzdury.

  1.  
  2. <?php
  3. define('ModName','sec_wj');
  4. require_once('/dispatcher/include/php/core.php');
  5. require_once('/dispatcher/include/php/meta_rf.php');
  6. //include('/dispatcher/include/php/rf_script.php');
  7. function pulpit() {
  8. ?>
  9. <center>
  10. <div class="big">
  11. zeskanuj kod zlecenia
  12. </div>
  13.  
  14. <script>
  15. focuser='nr_zlecenia';
  16. </script>
  17.  
  18. <center>
  19. <!--<form action="//<?=$_SERVER['PHP_SELF']?>?op=sprawdz" method="POST">-->
  20. <input type="text" class="semibig" size="14" name="nr_zlecenia" >
  21. </form>
  22.  
  23. <center>
  24. <div class="big">
  25. podaj nr_rej naczepy!!!
  26. </div>
  27.  
  28. <script>
  29. focuser='nr_rej';
  30. </script>
  31.  
  32. <center>
  33. <form action="<?=$_SERVER['PHP_SELF']?>?op=sprawdz" method="POST">
  34. <input type="text" class="semibig" size="14" name="nr_rejs" >
  35. <?
  36. $nr_rej = $_POST["nr_rejs"];
  37. ?>
  38. </form>
  39.  
  40.  
  41. <form method="POST" action="\radio\index.php">
  42. <input type="button" onclick="submit();" value="menu" class="semibig">
  43. </form>
  44. <?
  45. }
  46.  
  47.  
  48. $nr_rej = $_POST["nr_rejs"];
  49. function powrot($rj_container,$typ,$czy_naczepa, $nr_rej){
  50. global $mdb;
  51.  
  52. alert($nr_rej);
  53.  
  54. if($czy_naczepa==1) {
  55.  
  56. $mdb->exec ("UPDATE trailers SET tr_status=6 where nr=(
  57. select nr_naczepy from rozklad_jazdy WHERE rj_container={$rj_container})",__LINE__,__FILE__);
  58.  
  59. $mdb->exec ("UPDATE rozklad_jazdy SET powrot=NOW(),status='10'
  60.  
  61. WHERE rj_container={$rj_container}",__LINE__,__FILE__);
  62.  
  63. $mdb->exec ("UPDATE harmonogram_dostawy set wpuszczenie=NOW(),zgloszenie=NOW(),wjazd=NOW()
  64.  
  65. WHERE rd_container='{$o0[rj_container]}'",__LINE__,__FILE__);
  66.  
  67. $m17=$mdb->exec("select * from rozklad_jazdy WHERE rj_container={$rj_container}",__LINE__,__FILE__);
  68.  
  69. while ($o17 = mysql_fetch_array($m17)) {
  70. $nr_naczepy = $o17['nr_naczepy'];
  71.  
  72. if ($o17[nr_naczepy]!='999' and $o17[nr_naczepy]!='888' and ($o17[trasa] <'8000' or $o17[trasa] >='8999')){
  73. $mdb->exec ("update ruch_naczep SET powrot=NOW() where id='$o17[id]'",__LINE__,__FILE__);
  74. }
  75. else{
  76. $mdb->exec ("UPDATE rozklad_jazdy
  77. SET wyjazd=czas7,status='10'
  78. WHERE id='$o17[id]'",__LINE__,__FILE__);
  79. } }
  80. $mdb->exec("insert into int_log_naczep set
  81. iln_kontener ={$rj_container},
  82. iln_typ_czynnosci ={$typ},
  83. iln_kto ='{$_SESSION[nazw_usr]}',
  84. iln_kiedy =now(),
  85. iln_rej = {$nr_rej}
  86. ",__LINE__,__FILE__);
  87.  
  88.  
  89. }
  90. else
  91. {
  92.  
  93. $mdb->exec("insert into int_log_naczep set
  94. iln_kontener ={$rj_container},
  95. iln_typ_czynnosci ={$typ},
  96. iln_kto ='{$_SESSION[nazw_usr]}',
  97. iln_kiedy =now(),
  98. int_brak_naczepy=1,
  99. iln_rej = {$nr_rej}
  100. ",__LINE__,__FILE__);
  101. }
  102.  
  103. }
  104.  
  105.  
  106.  
  107.  
  108.  
  109.  
  110. function czynnosci($konterner,$pusta,$nr_rej){
  111.  
  112. global $mdb;
  113. ?>
  114. <table>
  115. <tr>
  116. <?
  117.  
  118. $a=$mdb->exec("select * from types where ty_type = 13 ",__LINE__,__FILE__);
  119. while($typ=mysql_fetch_array($a)){
  120.  
  121. if($row<2){
  122. ?>
  123. <td>
  124. <form action="<?=$_SERVER['PHP_SELF']?>?op=zatwierdz" method="POST">
  125. <input type="hidden" name="rj_container" value="<?=$konterner?>">
  126. <input type="hidden" name="typ" value="<?=$typ['ty_id2']?>">
  127. <input type="hidden" name="czy_naczepa" value="<?=$pusta?>">
  128. <input type="button" onclick="submit();" value="<?=$typ['ty_code']?>" class="semibig">
  129. </form>
  130. </td><?
  131. }
  132. if($row==2){echo"<tr>";};
  133. if($row>=2 and $row<4 ){
  134. ?>
  135. <td>
  136. <form action="<?=$_SERVER['PHP_SELF']?>?op=zatwierdz" method="POST">
  137. <input type="hidden" name="rj_container" value="<?=$konterner?>">
  138. <input type="hidden" name="typ" value="<?=$typ['ty_id2']?>">
  139. <input type="hidden" name="czy_naczepa" value="<?=$pusta?>">
  140. <input type="button" onclick="submit();" value="<?=$typ['ty_code']?>" class="semibig">
  141. </form>
  142. </td>
  143. <?
  144. }
  145. if($row==4){echo"<tr>";};
  146. if($row>=4 and $row<=6 ){
  147. ?>
  148. <td>
  149. <form action="<?=$_SERVER['PHP_SELF']?>?op=zatwierdz" method="POST">
  150. <input type="hidden" name="rj_container" value="<?=$konterner?>">
  151. <input type="hidden" name="typ" value="<?=$typ['ty_id2']?>">
  152. <input type="hidden" name="czy_naczepa" value="<?=$pusta?>">
  153. <input type="button" onclick="submit();" value="<?=$typ['ty_code']?>" class="semibig">
  154. </form>
  155. </td>
  156. <?}$row++;}?>
  157. </tr>
  158. <tr>
  159. <td colspan="12" align="center">
  160. <form method="POST" action="<?=$_SERVER['PHP_SELF']?>">
  161. <input type="button" onclick="submit();" value="wroc" class="semibig">
  162. </form>
  163. </td></tr></table>
  164. <?
  165.  
  166.  
  167. }
  168.  
  169.  
  170. switch($op){
  171.  
  172. case "sprawdz":
  173. $m0=$mdb->exec("select
  174. concat(imie,' ',nazwisko) name,
  175. driver1,rj_container,miasto,nr_naczepy,
  176. group_concat(distinct trasa ORDER BY trasa asc SEPARATOR '<br>') trasa,
  177. group_concat(bh ORDER BY bh desc SEPARATOR '<br>') bh,czas5,czas3,czas7,hm_pl_we,hm_pl_wy from rozklad_jazdy,
  178. transport_containers
  179. left join drivers on drivers.id=driver1
  180. where transport_containers.id = '{$nr_zlecenia}'
  181. and wyjazd!=0
  182. and powrot=0
  183. and rj_container=transport_containers.id
  184. group by rj_container,miasto
  185. order by czas5",__LINE__,__FILE__);
  186. if($mdb->rows==0){
  187.  
  188. ?>
  189. <center>
  190. <div class="big">
  191. brak kodu zlecenia <br>zatwierdz przyjazd:<br>
  192. podaj numer naczepy
  193. </div>
  194.  
  195. <script>
  196. focuser='naczepa';
  197. </script>
  198. <form action="<?=$_SERVER['PHP_SELF']?>?op=brak_zlecenia" method="POST">
  199. <input type="text" size="3" class="big" name="naczepa" value="">
  200. </form>
  201. <?
  202. alert($nr_rej);
  203. }
  204.  
  205. else{
  206.  
  207. ?>
  208. <center>
  209. <table>
  210. <tr class="tabela_naglowek">
  211. <td>kierowca</td>
  212. <td>naczepa</td>
  213. </tr>
  214. <?$o=mysql_fetch_array($m0);?>
  215. <tr class="tabela_naglowek">
  216. <td class="tabela2"><?=$o[name]?></td>
  217. <td class="tabela2"><?=$o[nr_naczepy]?></td>
  218. </tr>
  219. <tr class="tabela_naglowek">
  220. <td>planowany powrót</td>
  221. <td>trasy</td>
  222. </tr>
  223. <td class="tabela2"><?=$o[czas7]?></td>
  224. <td class="tabela2"><?=$o[trasa]?></td>
  225. </tr>
  226. <tr><td colspan="3" align="center"><?=$nr_zlecenia?></td>
  227.  
  228. </tr>
  229. </table>
  230.  
  231. <?
  232.  
  233. czynnosci($nr_zlecenia,1);
  234. }
  235.  
  236. break;
  237. case "zatwierdz":
  238. powrot($rj_container,$typ,$czy_naczepa, $nr_rej);
  239. pulpit();
  240.  
  241. break;
  242.  
  243. case "brak_zlecenia":
  244. $m0=$mdb->exec("select
  245. concat(imie,' ',nazwisko) name,
  246. driver1,rj_container,miasto,nr_naczepy,
  247. group_concat(distinct trasa ORDER BY trasa asc SEPARATOR '<br>') trasa,
  248. group_concat(bh ORDER BY bh desc SEPARATOR '<br>') bh,czas5,czas3,czas7,hm_pl_we,hm_pl_wy from rozklad_jazdy,
  249. transport_containers
  250. left join drivers on drivers.id=driver1
  251. where nr_naczepy!=0
  252. and wyjazd!=0
  253. and powrot=0
  254. and nr_naczepy='{$naczepa}'
  255. and nr_naczepy!=999
  256. and nr_naczepy!=888
  257. and rj_container=transport_containers.id
  258. group by rj_container,miasto
  259. order by czas5 desc ",__LINE__,__FILE__);
  260.  
  261.  
  262.  
  263. if($mdb->rows==0){
  264. echo " <center>";
  265.  
  266. czynnosci($naczepa,0);
  267.  
  268. }
  269. else{
  270. ?>
  271. <center>
  272. <table>
  273. <tr class="tabela_naglowek">
  274. <td>kierowca</td>
  275. <td>naczepa</td>
  276.  
  277. <?
  278. ?>
  279. <tr class="tabela_naglowek">
  280. <td class="tabela2"><?=$o[name]?></td>
  281. <td class="tabela2"><?=$o[nr_naczepy]?></td>
  282. </tr>
  283. <tr class="tabela_naglowek">
  284. <td>planowany powrót</td>
  285. <td>trasy</td>
  286. </tr>
  287. <td class="tabela2"><?=$o[czas7]?></td>
  288. <td class="tabela2"><?=$o[trasa]?></td>
  289. </tr>
  290. <?
  291.  
  292. czynnosci($o[rj_container],1);
  293.  
  294. }
  295.  
  296. break;
  297.  
  298.  
  299. default:
  300. pulpit();
  301.  
  302. }
  303. ?>
  304.  
nospor
alert($nr_rej);
Czyli jednak dałeś to w php.... nie wywala ci to żadnego błędu? Przeciez php nie ma funkcji ALERT. No chyba, że takową napisałeś. Napisałeś?
eviance
Cytat(nospor @ 27.11.2012, 10:56:56 ) *
alert($nr_rej);
Czyli jednak dałeś to w php.... nie wywala ci to żadnego błędu? Przeciez php nie ma funkcji ALERT. No chyba, że takową napisałeś. Napisałeś?


niestety odziedziczylem spadek serwera z własnie takimi klockami fukcja jest napisana w javie a można ją wywołać w php dziwne ale czasami skuteczne
nospor
Cytat
z własnie takimi klockami fukcja jest napisana w javie a można ją wywołać w php dziwne ale czasami skuteczne
Nie, to nie jest możliwe. Jedyne wytłumaczenie tego jest takie, że gdzieś tam w kodzie jest jeszcze napisana w php funkcja alert, a ty poprostu tego nie zauważyłeś.
eviance
a no tak to jest

deklaracja strony core.php---> tam odnosnik do kilku stron i tam takie coś funkcje.php ----> a tam znowu takie klocki smile.gif a wracając do tematu analizuje i ni huhuhu nawet globala deklarowałem
  1. function alertow($var){
  2. echo "<script>alertow='".$var."';</SCRIPT>";
  3.  
  4. }
  5.  
  6. function alert($var){
  7. echo "<script>alert('".$var."');</SCRIPT>";
  8.  
b4rt3kk
To nie ma prawa zadziałać:

  1. $nr_rej = $_POST["nr_rejs"];
  2. function powrot($rj_container,$typ,$czy_naczepa){
  3. global $mdb;
  4.  
  5. alert($nr_rej);


Zmienne wewnątrz funkcji są zmiennymi lokalnymi, tak więc zadeklarowanie czegoś przed funkcją, a później użycie tej samej zmiennej wewnątrz funkcji, to dwie różne sprawy. Ale za to $_POST to już tablica globalna, tak więc dopuszczalne jest rozwiązanie:

  1. function powrot($rj_container,$typ,$czy_naczepa){
  2. global $mdb;
  3.  
  4. alert($_POST['nr_rejs']);


EDIT: literówka
eviance
własnie już się pogubiłem, jesli wsadzilem

  1. alert($_POST['nr_rejs']);


to mi nie przechowuje zmienej poprzedni
  1. $nr_rej = $_POST["nr_rejs"];
i to działało naprawdę już zglupiałem

b4rt3kk
A przesłałeś dane formularzem? Bez tego przecież tablica $_POST jest pusta. Takie przypisanie wewnątrz funkcji też będzie działać:

  1. function powrot($rj_container,$typ,$czy_naczepa){
  2. global $mdb;
  3. $nr_rej = $_POST["nr_rejs"];
  4. alert($nr_rej);


A najlepiej dodaj jeszcze jeden argument funkcji:

  1. function powrot($rj_container,$typ,$czy_naczepa, $nr_rej){
  2. global $mdb;
  3.  
  4. alert($nr_rej);
mortus
Jakiś koszmar, ale zadam takie pytanie. Który submit zatwierdza przesłanie nr_rejs? W kodzie jest mnóstwo formularzy (z polami tekstowymi), które nie są opatrzone żadnym przyciskiem, czy są zatem przesyłane przez wywołanie funkcji submit lub innego eventu w JavaScript (tutaj musiałby być użyty AJAX)?

Dane pochodzące z tablicy superglobalnej dobrze jest przekazać funkcji jako jej argument ze względu na to, że takie dane nie są dostępnę w każdej chwili, a jedynie w momencie ich przesłania po zatwierdzeniu formularza. Nie chodzi o moment w którym taką funkcję deklarujemy, ale o moment w którym ją wywołujemy:
  1. // deklaracja funkcji
  2. function powrot($rj_container, $typ, $czy_naczepa, $nr_rej) {
  3. global $mdb;
  4. alert($nr_rej);
  5. // ...
  6. }
  7.  
  8. // wywołanie funckji poprzedzone pobraniem wartości z $_POST
  9. $nr_rej = $_POST['nr_rejs'];
  10. powrot($rj_container, $typ, $czy_naczepa, $nr_rej);


Niemniej kod pełen bałaganu i proponuję, abyś sprawdzał sobie (przynajmniej na etapie programowania) zawartość tablicy $_POST na samym początku skryptu:
  1. echo '<pre>';
  2. print_r($_POST);
  3. // cała reszta
eviance
Cytat(mortus @ 27.11.2012, 12:04:11 ) *
Niemniej kod pełen bałaganu i proponuję, abyś sprawdzał sobie (przynajmniej na etapie programowania) zawartość tablicy $_POST na samym początku skryptu:
  1. echo '<pre>';
  2. print_r($_POST);
  3. // cała reszta



a no dziękuje to akurat zaczeł robić wszstko to co napisałeś posprawdzałem i na co wychodzi że, "case" nie trzyma nie posta do zmienej - danych do zatwierdzenia, wyżej w kodzie w przyciskach dorobiłem


  1. ?>
  2. <td>
  3. <form action="<?=$_SERVER['PHP_SELF']?>?op=zatwierdz" method="POST">
  4. <input type="hidden" name="rj_container" value="<?=$konterner?>">
  5. <input type="hidden" name="typ" value="<?=$typ['ty_id2']?>">
  6. <input type="hidden" name="czy_naczepa" value="<?=$pusta?>">
  7. <input type="hidden" name="nr_rej" value="<?=$_POST['nr_rejs']?>">
  8. <input type="button" onclick="submit();" value="<?=$typ['ty_code']?>" class="semibig">
  9. </form>
  10. <?
  11. echo '<pre>';
  12. print_r($_POST);
  13. ?>


i tu ładnie pokazuje pod każdym guziczkiem zmieną --- po kliknieciu jesli potwierdze a wypluwa nie zapamientaną zmiena $nr_rej nie jest zapamietana


  1. case "zatwierdz":
  2.  
  3.  
  4. powrot($rj_container,$typ,$czy_naczepa, $nr_rej);
  5.  
  6. pulpit();
  7.  
  8. break;
  9.  


no już brak mi pomysłów poniższe zrobiłem już w każdym miejscu i utknełem dlaczego pod guzikami przekazuje zmieną i nie jest zapamietana pierwszy raz się spotkałem z takim przypadkiem, a pozatym nie wiem jak to możliwe wczoraj wujek google nie chciał poradzić, manualem też się nie doczytałem.



  1. echo '<pre>';
  2. print_r($_POST);


a dokładnie utknełem tu


bo tu nie zapamietuje

  1. case "zatwierdz":
  2.  
  3.  
  4. powrot($rj_container,$typ,$czy_naczepa, $nr_rej);
  5.  
  6. pulpit();
  7.  
  8. break;


siema all

no to tak udało się dziękuje wszystkim za wsparcie i podsuniecie rozwiązania, sprawa okazała się bardzo banalna chodz wiem ze istny bur.... w kodzie


no to tak $_post co kazdego casa nie mógł deklarowac tej samej zmienej wiec krok po kroczku z kazdego cese wychodziłem z nową zmieną aż do końca smile.gif


wiec isercik się wykonał wiec dalej walka


temacik do zamkniecia
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.