Drukowana wersja tematu

Kliknij tu, aby zobaczyć temat w orginalnym formacie

Forum PHP.pl _ Przedszkole _ [SQL][HTML][PHP]Przekazywanie danych=zmiennych przez 5 podstrony

Napisany przez: oblako 6.09.2019, 00:20:14

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ć?

Napisany przez: Tomplus 6.09.2019, 05:56:31

Skoro masz formularze to przekazuj dane metodą POST lub GET, a te dalej tą samą drogą tylko w tagach

  1. <http://december.com/html/4/element/input.html type='hidden'>

Napisany przez: Pyton_000 6.09.2019, 06:54:23

Albo zapisać w sesji

Napisany przez: oblako 6.09.2019, 10:28:35

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. <http://december.com/html/4/element/input.html 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ć?

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


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. http://www.php.net/session_start();
  4.  
  5. $_SESSION['prelegent']=$_POST['prelegent'];
  6. $_SESSION['asystent']=$_POST['asystent'];
  7. $_SESSION['asystent1']=$_POST['asystent1'];
  8. $_SESSION['prelegent2']=$_POST['asystent2'];
  9. $_SESSION['prelegent3']=$_POST['asystent3'];
  10. $_SESSION['prelegent4']=$_POST['asystent4'];
  11. $_SESSION['kierowca']=$_POST['kierowca'];
  12.  
  13. ?>


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. http://www.php.net/session_start();
  5.  
  6. http://www.php.net/echo $_SESSION['prelegent'];
  7.  
  8. // itd
  9.  
  10. ?>

Napisany przez: mrk9109 7.09.2019, 07: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

Napisany przez: oblako 8.09.2019, 20:37:06

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




Wtedy:

  1. <?php
  2.  
  3. http://www.php.net/session_start();
  4.  
  5. $_SESSION['prelegent']=$_POST['prelegent'];
  6. $_SESSION['asystent']=$_POST['asystent'];
  7. $_SESSION['asystent1']=$_POST['asystent1'];
  8. $_SESSION['prelegent2']=$_POST['asystent2'];
  9. $_SESSION['prelegent3']=$_POST['asystent3'];
  10. $_SESSION['prelegent4']=$_POST['asystent4'];
  11. $_SESSION['kierowca']=$_POST['kierowca'];
  12.  
  13. ?>


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. http://www.php.net/session_start();
  5.  
  6. http://www.php.net/echo $_SESSION['prelegent'];
  7.  
  8. // itd
  9.  
  10. ?>


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

Napisany przez: dublinka 8.09.2019, 20:58:15

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')");

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)