Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [SQL][HTML][PHP]Przekazywanie danych=zmiennych przez 5 podstrony
oblako
post 6.09.2019, 00:20:14
Post #1





Grupa: Zarejestrowani
Postów: 13
Pomógł: 0
Dołączył: 5.09.2019

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


Cześć, posiadam 5 podstron które umożliwiają mi zaplanowanie wyjazdu i kolejno się przez nie przechodzi:

1. skład.php
2. rodzaj_wyjazdu.php
tutaj mam listę opcji, która kieruje wybrano do:
a ) tyg4.php
b ) tyg5.php
c ) tyg6.php

na którejś z tych 3 wariantów(a,b,c) jest dopiero polecenie "insert into", a więc chodzi o to żeby te dane z poprzednich stron przechodziły do ostatniej tak aby, wszystko zapisało się pod jedno id.wyjazdu.

Pytanie: Jak to zrobić?

Ten post edytował oblako 6.09.2019, 00:26:27
Go to the top of the page
+Quote Post
Tomplus
post 6.09.2019, 05:56:31
Post #2





Grupa: Zarejestrowani
Postów: 1 479
Pomógł: 176
Dołączył: 20.03.2005
Skąd: Będzin

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


Skoro masz formularze to przekazuj dane metodą POST lub GET, a te dalej tą samą drogą tylko w tagach
  1. <input type='hidden'>
Go to the top of the page
+Quote Post
Pyton_000
post 6.09.2019, 06:54:23
Post #3





Grupa: Zarejestrowani
Postów: 7 812
Pomógł: 1373
Dołączył: 26.10.2005

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


Albo zapisać w sesji
Go to the top of the page
+Quote Post
oblako
post 6.09.2019, 10:28:35
Post #4





Grupa: Zarejestrowani
Postów: 13
Pomógł: 0
Dołączył: 5.09.2019

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


Cytat(Tomplus @ 6.09.2019, 06:56:31 ) *
Skoro masz formularze to przekazuj dane metodą POST lub GET, a te dalej tą samą drogą tylko w tagach
  1. <input type='hidden'>


Nie za bardzo rozumiem w jaki sposób mam to przekazywać.

$prelegent=$_POST['prelegent'];
$asystent=$_POST['asystent'];
$asystent1=$_POST['asystent1'];
$asystent2=$_POST['asystent2'];
$asystent3=$_POST['asystent3'];
$asystent4=$_POST['asystent4'];
$kierowca=$_POST['kierowca'];

że tak? i wtedy jak z 2 podstrony na 3 to przerzucić?
Go to the top of the page
+Quote Post
dublinka
post 6.09.2019, 13:07:45
Post #5





Grupa: Zarejestrowani
Postów: 271
Pomógł: 33
Dołączył: 22.02.2008

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


Przekazujesz w polach hidden wartosci ktore chcesz zeby byly na innych stronach bądz przypisujesz wartosci dla konkretnej sesji i je wywolujesz gdzie chcesz.
Najlepiej zrobic to w jednym pliku na switch()

Jesli chcedsz to robic na kolejnych stronach to musisz to gdziesz przechowywac bo jesli przekarzesz z pliku pierwszego zmiennądo drugiego to bedzie ona widoczna ale juz na trzeciej nie. W drugim pliku musisz albo przypisac wartosc do sesji albo wsadzic w value pola hidden i przekazac to pole do pliku 3. Itd..

Wiec albo zrobisz to tak ze masz przykladowo 5 plików i przechodzisz pomiedzy nimi i przekazujesz dane albo tak jak tutaj np.

  1. <?php
  2.  
  3. $persons = array('Czesiek', 'Zenek', 'Tomek', 'Mariusz', 'Kaśka', 'Maryśka');
  4. $typeOfTour = array('Narty', 'Mecz', 'Koncert', 'Wakacje', 'Obóz');
  5.  
  6. ( !isset ( $_POST['step'] ) ) ? $_POST['step'] = '0' : $_POST['step'] = $_POST['step'];
  7.  
  8. if(isset($_POST['step'])) $step = $_POST['step'];
  9.  
  10. switch($step):
  11.  
  12. case('0'):
  13.  
  14. echo '<h3>Krok 1. Wybierz osoby</h3>';
  15. echo "<form action=" . $_SERVER['SCRIPT_NAME'] . " method=\"post\">";
  16. echo "<input type=\"hidden\" name=\"step\" value=\"1\">";
  17.  
  18. while(list(, $val) = each($persons))
  19. {
  20.  
  21. echo $val . " <input type=\"checkbox\" name=\"tick1[]\" value=\"" . $val . "\"><br>";
  22.  
  23.  
  24. }
  25. echo "<p><input type=\"submit\" value=\">>> Krok 2\"></form>";
  26.  
  27. break;
  28.  
  29.  
  30.  
  31. case('1');
  32.  
  33.  
  34.  
  35. $content = $_POST['tick1'];
  36.  
  37. if(!empty($content))
  38. {
  39.  
  40. echo '<h3>Krok 2. Wybrałeś osobę/osoby:</h3>';
  41.  
  42. foreach($content as $kl => $val)
  43. {
  44.  
  45. echo $val . '<br>';
  46.  
  47. }
  48.  
  49. echo '<p><h3>Wybierz rodzaj wyjazdu:</h3>';
  50.  
  51. echo "<form action=" . $_SERVER['SCRIPT_NAME'] . " method=\"post\">";
  52. echo "<input type=\"hidden\" name=\"step\" value=\"2\">";
  53. echo "<input type=\"hidden\" name=\"persons\" value=\"" . base64_encode(serialize($content)) . "\">";
  54.  
  55.  
  56. while(list(, $val) = each($typeOfTour))
  57. {
  58.  
  59. echo $val . " <input type=\"checkbox\" name=\"tick2[]\" value=\"" . $val . "\"><br>";
  60.  
  61.  
  62. }
  63.  
  64. echo "<p><input type=\"submit\" value=\"Krok 3\"></form>";
  65.  
  66. }else{
  67.  
  68. header('location: ' . $_SERVER['SCRIPT_NAME']);
  69.  
  70. }
  71.  
  72. break;
  73.  
  74.  
  75.  
  76. case('2'):
  77.  
  78. $content = $_POST['tick2'];
  79.  
  80. if(!empty($content))
  81. {
  82.  
  83.  
  84. $tick2 = $_POST['tick2'];
  85. $persons = unserialize(base64_decode($_POST['persons']));
  86.  
  87. echo '<h3>Krok 2. Wybrałeś osobę/osoby:</h3>';
  88.  
  89. foreach($persons as $kl => $val)
  90. {
  91.  
  92. echo $val . '<br>';
  93.  
  94. }
  95.  
  96. echo '<h3>Krok 2. Wybrałeś rodzaj wyjazdu:</h3>';
  97.  
  98. foreach($tick2 as $kl2 => $val2)
  99. {
  100.  
  101. echo $val2 . '<br>';
  102.  
  103. }
  104.  
  105. echo "<form action=" . $_SERVER['SCRIPT_NAME'] . " method=\"post\">";
  106. echo "<input type=\"hidden\" name=\"step\" value=\"3\">";
  107. echo "<input type=\"hidden\" name=\"persons2\" value=" . base64_encode(serialize($persons)) . ">";
  108. echo "<input type=\"hidden\" name=\"tick3\" value=\"" . base64_encode(serialize($tick2)) . "\">";
  109.  
  110.  
  111.  
  112. echo "<p><input type=\"submit\" value=\"Zapisz dane\"></form>";
  113.  
  114. }else{
  115.  
  116. header('location: ' . $_SERVER['SCRIPT_NAME']);
  117.  
  118. }
  119.  
  120.  
  121. break;
  122.  
  123. case('3'):
  124.  
  125. echo '<h3>Dane do zapisu do bazy</h3>';
  126.  
  127. print_r(unserialize(base64_decode($_POST['persons2'])));
  128. echo '<br>';
  129. print_r(unserialize(base64_decode($_POST['tick3'])));
  130.  
  131.  
  132. break;
  133.  
  134.  
  135.  
  136. default:
  137. header('location: ' . $_SERVER['SCRIPT_NAME']);
  138.  
  139. endswitch;
  140.  
  141. ?>


Cytat(oblako @ 6.09.2019, 10:28:35 ) *
Nie za bardzo rozumiem w jaki sposób mam to przekazywać.

$prelegent=$_POST['prelegent'];
$asystent=$_POST['asystent'];
$asystent1=$_POST['asystent1'];
$asystent2=$_POST['asystent2'];
$asystent3=$_POST['asystent3'];
$asystent4=$_POST['asystent4'];
$kierowca=$_POST['kierowca'];

że tak? i wtedy jak z 2 podstrony na 3 to przerzucić?


Wtedy:

  1. <?php
  2.  
  3.  
  4. $_SESSION['prelegent']=$_POST['prelegent'];
  5. $_SESSION['asystent']=$_POST['asystent'];
  6. $_SESSION['asystent1']=$_POST['asystent1'];
  7. $_SESSION['prelegent2']=$_POST['asystent2'];
  8. $_SESSION['prelegent3']=$_POST['asystent3'];
  9. $_SESSION['prelegent4']=$_POST['asystent4'];
  10. $_SESSION['kierowca']=$_POST['kierowca'];
  11.  
  12. ?>


W plikach kolejnych wywolujesz sesje po ich nazwach. Sesje sądostępne w każdym pliku po wcześniejszym zainicjowaniu poprzez session_start();

Np:

  1.  
  2. <?php
  3.  
  4.  
  5. echo $_SESSION['prelegent'];
  6.  
  7. // itd
  8.  
  9. ?>


Ten post edytował dublinka 6.09.2019, 13:08:35
Go to the top of the page
+Quote Post
mrk9109
post 7.09.2019, 07:35:25
Post #6





Grupa: Zarejestrowani
Postów: 395
Pomógł: 3
Dołączył: 4.06.2010

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


A nie lepiej zrobić insert w 1 pliku i kolejne to już update w bazie danych i pare warunków do usuwania nie dokończonych rezerwacji itp
Go to the top of the page
+Quote Post
oblako
post 8.09.2019, 20:37:06
Post #7





Grupa: Zarejestrowani
Postów: 13
Pomógł: 0
Dołączył: 5.09.2019

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


Cytat(mrk9109 @ 7.09.2019, 08:35:25 ) *
A nie lepiej zrobić insert w 1 pliku i kolejne to już update w bazie danych i pare warunków do usuwania nie dokończonych rezerwacji itp


Znaczy nie to nie jest strona dla hotelu czy jakiś rezerwacji. To jest CRM dla firmy, i po prostu biuro sprawdza wyjazdy doradców, żeby potem przy wprowadzaniu umowy do systemu mogli dopasować z którego wyjazdu jest to umowa

Cytat(dublinka @ 6.09.2019, 14:07:45 ) *
Przekazujesz w polach hidden wartosci ktore chcesz zeby byly na innych stronach bądz przypisujesz wartosci dla konkretnej sesji i je wywolujesz gdzie chcesz.
Najlepiej zrobic to w jednym pliku na switch()

Jesli chcedsz to robic na kolejnych stronach to musisz to gdziesz przechowywac bo jesli przekarzesz z pliku pierwszego zmiennądo drugiego to bedzie ona widoczna ale juz na trzeciej nie. W drugim pliku musisz albo przypisac wartosc do sesji albo wsadzic w value pola hidden i przekazac to pole do pliku 3. Itd..

Wiec albo zrobisz to tak ze masz przykladowo 5 plików i przechodzisz pomiedzy nimi i przekazujesz dane albo tak jak tutaj np.

  1. <?php
  2.  
  3. $persons = array('Czesiek', 'Zenek', 'Tomek', 'Mariusz', 'Kaśka', 'Maryśka');
  4. $typeOfTour = array('Narty', 'Mecz', 'Koncert', 'Wakacje', 'Obóz');
  5.  
  6. ( !isset ( $_POST['step'] ) ) ? $_POST['step'] = '0' : $_POST['step'] = $_POST['step'];
  7.  
  8. if(isset($_POST['step'])) $step = $_POST['step'];
  9.  
  10. switch($step):
  11.  
  12. case('0'):
  13.  
  14. echo '<h3>Krok 1. Wybierz osoby</h3>';
  15. echo "<form action=" . $_SERVER['SCRIPT_NAME'] . " method=\"post\">";
  16. echo "<input type=\"hidden\" name=\"step\" value=\"1\">";
  17.  
  18. while(list(, $val) = each($persons))
  19. {
  20.  
  21. echo $val . " <input type=\"checkbox\" name=\"tick1[]\" value=\"" . $val . "\"><br>";
  22.  
  23.  
  24. }
  25. echo "<p><input type=\"submit\" value=\">>> Krok 2\"></form>";
  26.  
  27. break;
  28.  
  29.  
  30.  
  31. case('1');
  32.  
  33.  
  34.  
  35. $content = $_POST['tick1'];
  36.  
  37. if(!empty($content))
  38. {
  39.  
  40. echo '<h3>Krok 2. Wybrałeś osobę/osoby:</h3>';
  41.  
  42. foreach($content as $kl => $val)
  43. {
  44.  
  45. echo $val . '<br>';
  46.  
  47. }
  48.  
  49. echo '<p><h3>Wybierz rodzaj wyjazdu:</h3>';
  50.  
  51. echo "<form action=" . $_SERVER['SCRIPT_NAME'] . " method=\"post\">";
  52. echo "<input type=\"hidden\" name=\"step\" value=\"2\">";
  53. echo "<input type=\"hidden\" name=\"persons\" value=\"" . base64_encode(serialize($content)) . "\">";
  54.  
  55.  
  56. while(list(, $val) = each($typeOfTour))
  57. {
  58.  
  59. echo $val . " <input type=\"checkbox\" name=\"tick2[]\" value=\"" . $val . "\"><br>";
  60.  
  61.  
  62. }
  63.  
  64. echo "<p><input type=\"submit\" value=\"Krok 3\"></form>";
  65.  
  66. }else{
  67.  
  68. header('location: ' . $_SERVER['SCRIPT_NAME']);
  69.  
  70. }
  71.  
  72. break;
  73.  
  74.  
  75.  
  76. case('2'):
  77.  
  78. $content = $_POST['tick2'];
  79.  
  80. if(!empty($content))
  81. {
  82.  
  83.  
  84. $tick2 = $_POST['tick2'];
  85. $persons = unserialize(base64_decode($_POST['persons']));
  86.  
  87. echo '<h3>Krok 2. Wybrałeś osobę/osoby:</h3>';
  88.  
  89. foreach($persons as $kl => $val)
  90. {
  91.  
  92. echo $val . '<br>';
  93.  
  94. }
  95.  
  96. echo '<h3>Krok 2. Wybrałeś rodzaj wyjazdu:</h3>';
  97.  
  98. foreach($tick2 as $kl2 => $val2)
  99. {
  100.  
  101. echo $val2 . '<br>';
  102.  
  103. }
  104.  
  105. echo "<form action=" . $_SERVER['SCRIPT_NAME'] . " method=\"post\">";
  106. echo "<input type=\"hidden\" name=\"step\" value=\"3\">";
  107. echo "<input type=\"hidden\" name=\"persons2\" value=" . base64_encode(serialize($persons)) . ">";
  108. echo "<input type=\"hidden\" name=\"tick3\" value=\"" . base64_encode(serialize($tick2)) . "\">";
  109.  
  110.  
  111.  
  112. echo "<p><input type=\"submit\" value=\"Zapisz dane\"></form>";
  113.  
  114. }else{
  115.  
  116. header('location: ' . $_SERVER['SCRIPT_NAME']);
  117.  
  118. }
  119.  
  120.  
  121. break;
  122.  
  123. case('3'):
  124.  
  125. echo '<h3>Dane do zapisu do bazy</h3>';
  126.  
  127. print_r(unserialize(base64_decode($_POST['persons2'])));
  128. echo '<br>';
  129. print_r(unserialize(base64_decode($_POST['tick3'])));
  130.  
  131.  
  132. break;
  133.  
  134.  
  135.  
  136. default:
  137. header('location: ' . $_SERVER['SCRIPT_NAME']);
  138.  
  139. endswitch;
  140.  
  141. ?>




Wtedy:

  1. <?php
  2.  
  3.  
  4. $_SESSION['prelegent']=$_POST['prelegent'];
  5. $_SESSION['asystent']=$_POST['asystent'];
  6. $_SESSION['asystent1']=$_POST['asystent1'];
  7. $_SESSION['prelegent2']=$_POST['asystent2'];
  8. $_SESSION['prelegent3']=$_POST['asystent3'];
  9. $_SESSION['prelegent4']=$_POST['asystent4'];
  10. $_SESSION['kierowca']=$_POST['kierowca'];
  11.  
  12. ?>


W plikach kolejnych wywolujesz sesje po ich nazwach. Sesje sądostępne w każdym pliku po wcześniejszym zainicjowaniu poprzez session_start();

Np:

  1.  
  2. <?php
  3.  
  4.  
  5. echo $_SESSION['prelegent'];
  6.  
  7. // itd
  8.  
  9. ?>


Bardzo dużo mi pomogłaś, ale teraz w tym trzecim pliku gdzie wysyłam zapytanie insert into z całości nie widzi tych pol z poprzednich stron. Dodam, że po przez echo wyświetla, je...

  1. <?php
  2. //echo $_SESSION['id'];
  3. //$_SESSION['msg'];
  4. include("dbconnection.php");
  5. include("checklogin.php");
  6. check_login();
  7.  
  8.  
  9. if(isset($_POST['send']))
  10. {
  11.  
  12.  
  13. $miejscowosc=$_POST['miejscowosc'];
  14. $data=$_POST['data'];
  15. $hotel=$_POST['hotel'];
  16. $miejscowosc=$_POST['miejscowosc1'];
  17. $data=$_POST['data1'];
  18. $hotel=$_POST['hotel1'];
  19. $miejscowosc=$_POST['miejscowosc2'];
  20. $data=$_POST['data2'];
  21. $hotel=$_POST['hotel2'];
  22.  
  23.  
  24.  
  25. $a=mysqli_query($con,"insert into ticket
  26. (prelegent,asystent,asystent1,asystent2,asystent3,asystent4,kierowca,miejsco
    wosc,data,hotel,miejscowosc1,data1,hotel1,miejscowosc2,data2,hotel2)
  27.  
  28. values($prelegent',
  29. '$asystent',
  30. '$asystent1',
  31. '$asystent2',
  32. '$asystent3',
  33. '$asystent4',
  34. '$kierowca',
  35. '$miejscowosc',
  36. '$data',
  37. '$hotel',
  38. '$miejscowosc1',
  39. '$data1',
  40. '$hotel1',
  41. '$miejscowosc2',
  42. '$data2',
  43. '$hotel2')");
  44.  
  45. if($a)
  46. {
  47.  
  48. }
  49. }
  50.  
  51. ?>
Go to the top of the page
+Quote Post
dublinka
post 8.09.2019, 20:58:15
Post #8





Grupa: Zarejestrowani
Postów: 271
Pomógł: 33
Dołączył: 22.02.2008

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


Operujesz sesjami nie tablicami $_POST. Wartosci z tablic przypasales dlakazdej sesji. Teraz tylko je wywolujesz.

Plik 2
  1. $_SESSION['prelegent']=$_POST['prelegent'];
  2. $_SESSION['asystent']=$_POST['asystent'];
  3. $_SESSION['asystent1']=$_POST['asystent1'];
  4. $_SESSION['prelegent2']=$_POST['asystent2'];
  5. $_SESSION['prelegent3']=$_POST['asystent3'];
  6. $_SESSION['prelegent4']=$_POST['asystent4'];
  7. $_SESSION['kierowca']=$_POST['kierowca'];


Teraz w pliku 3 operujesz tylko na sesjach. Tablice zostaw w spokoju bo do nich nie ma juz dostepu bo nic nie wysylasz.
Mozesz sobie przypasac kolejne zmienne dla kazdej sesji jesli chcesz zeby Ci bylo latwiej w 3cim pliku lub od razu
  1. $prelegent = $_SESSION['prelegent'];
  2. $asystent = $_SESSION['asystent'];
  3. // itd


Pozniej robisz tak jak masz w pliku tylko ze kazda nowa zmienna musi miec wartosc z sesji j/w:

  1. values($prelegent',
  2. '$asystent',
  3. '$asystent1',
  4. '$asystent2',
  5. '$asystent3',
  6. '$asystent4',
  7. '$kierowca',
  8. '$miejscowosc',
  9. '$data',
  10. '$hotel',
  11. '$miejscowosc1',
  12. '$data1',
  13. '$hotel1',
  14. '$miejscowosc2',
  15. '$data2',
  16. '$hotel2')");


Ten post edytował dublinka 8.09.2019, 21:02:17
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: 20.09.2019 - 19:50