Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][HTML]Przekazanie zmiennych html->php
Forum PHP.pl > Forum > Przedszkole
wicy
Skrypt php uruchamia szablon html do wprowadzania danych. Szablon zawiera element FORM, gdzie AKCJA to przekazany z php adres powrotu z szablonu razem z parametrami (skrypt.php?p1=1&p2=2),
Kod
<form id="form1" method="POST" action="{AKCJA}" name="search1">

pola tekstowe INPUT z nazwami, będącymi nazwami przekazywanych parametrów (zmiennych?)
Kod
<input type="text" name="zmienna1"> <input type="text" name="zmienna2">

oraz przycisk
Kod
<input class="btnmain" type="submit" name="mode" value="Szukaj">


Szablon przekazuje zmienne spowrotem do skryptu, jednak gubi parametry przekazane w adresie powrotu. Zamiast adresu skrypt.php?p1=1&p2=2&zmienna1='tekst1'&zmienna2='tekst2'&mode=Szukaj mam adres skrypt.php?zmienna1='tekst1'&zmienna2='tekst2'&mode=Szukaj.

Próbowałem w definicji przycisku zmienić parametr "name" na '{akcja}&mode', parametry wszystkie są przekazywane własciwie, ale z kolei po stronie skryptu parametr 'mode' nie jest rozpoznawany przez funkcję request_var().

Jak przekzać zatem do szablonu adres powrotu z parametrami, uzupełnić do o zmienne w szablonie i odczytać po powrocie w skrypcie php?
Czy istnieje jakis inny sposób przekazania zmiennej z pola INPUT poprzez adres do skryptu? Chętnie bym się pozbył przycisku, ale pod link <A> podstawić wartości z pół tekstowych INPUT?
erix
Nie znamy Twojej funkcji request_var winksmiley.jpg

Cytat
Szablon przekazuje zmienne spowrotem do skryptu, jednak gubi parametry przekazane w adresie powrotu. Zamiast adresu skrypt.php?p1=1&p2=2&zmienna1='tekst1'&zmienna2='tekst2'&mode=Szukaj mam adres skrypt.php?zmienna1='tekst1'&zmienna2='tekst2'&mode=Szukaj.

p1 i p2 powinny być w tablicy $_GET.
wicy
Faktycznie, przepraszam, funkcja reguest_var() okazała się nie byc funkcją php. To funkcja zdefiniowana w phpbb3 i wygląda tak:
  1. <?php
  2. function request_var($var_name, $default, $multibyte = false, $cookie = false)
  3.  
  4. 56 {
  5.  
  6. 57 if (!$cookie && isset($_COOKIE[$var_name]))
  7.  
  8. 58 {
  9.  
  10. 59 if (!isset($_GET[$var_name]) && !isset($_POST[$var_name]))
  11.  
  12. 60 {
  13.  
  14. 61 return (is_array($default)) ? array() : $default;
  15.  
  16. 62 }
  17.  
  18. 63 $_REQUEST[$var_name] = isset($_POST[$var_name]) ? $_POST[$var_name] : $_GET[$var_name];
  19.  
  20. 64 }
  21.  
  22. 65
  23.  
  24. 66 if (!isset($_REQUEST[$var_name]) || (is_array($_REQUEST[$var_name]) && !is_array($default)) || (is_array($default) && !is_array($_REQUEST[$var_name])))
  25.  
  26. 67 {
  27.  
  28. 68 return (is_array($default)) ? array() : $default;
  29.  
  30. 69 }
  31.  
  32. 70
  33.  
  34. 71 $var = $_REQUEST[$var_name];
  35.  
  36. 72 if (!is_array($default))
  37.  
  38. 73 {
  39.  
  40. 74 $type = gettype($default);
  41.  
  42. 75 }
  43.  
  44. 76 else
  45.  
  46. 77 {
  47.  
  48. 78 list($key_type, $type) = each($default);
  49.  
  50. 79 $type = gettype($type);
  51.  
  52. 80 $key_type = gettype($key_type);
  53.  
  54. 81 }
  55.  
  56. 82
  57.  
  58. 83 if (is_array($var))
  59.  
  60. 84 {
  61.  
  62. 85 $_var = $var;
  63.  
  64. 86 $var = array();
  65.  
  66. 87
  67.  
  68. 88 foreach ($_var as $k => $v)
  69.  
  70. 89 {
  71.  
  72. 90 if (is_array($v))
  73.  
  74. 91 {
  75.  
  76. 92 foreach ($v as $_k => $_v)
  77.  
  78. 93 {
  79.  
  80. 94 set_var($k, $k, $key_type);
  81.  
  82. 95 set_var($_k, $_k, $key_type);
  83.  
  84. 96 set_var($var[$k][$_k], $_v, $type, $multibyte);
  85.  
  86. 97 }
  87.  
  88. 98 }
  89.  
  90. 99 else
  91.  
  92. 100 {
  93.  
  94. 101 set_var($k, $k, $key_type);
  95.  
  96. 102 set_var($var[$k], $v, $type, $multibyte);
  97.  
  98. 103 }
  99.  
  100. 104 }
  101.  
  102. 105 }
  103.  
  104. 106 else
  105.  
  106. 107 {
  107.  
  108. 108 set_var($var, $var, $type, $multibyte);
  109.  
  110. 109 }
  111.  
  112. 110
  113.  
  114. 111 return $var;
  115.  
  116. 112 }
  117. ?>


Czy to znaczy, że część parametrów (z pół tekstowych formularza) jest przekazywanych przez tabliczę POST a część przez GET?
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.