Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]formularz i zmienne.
Forum PHP.pl > Forum > Przedszkole
bladykiel
Witam, mam taki mały problem i nie wiem jak sobie z nim poradzić.
w 1 formularzu mam kilka takich deklaracji (dla monster, event, luck, champion:
  1. echo '<select name="</br>'.$monster['nazwa'].'">';
  2. for($i=0;$i<=5;$i++){
  3. echo '<option value="'.$i.'">'.$i.'</option>';
  4. }
  5. echo '</select><a href="/stworzenia-'.urlencode($monster['nazwa']).'.html"><strong>'.$monster['nazwa'].'</strong></a></br>
  6. </TD></TR>';}


Po naciśnięciu guzika submit, mam:
  1. if(isset($_POST['wygeneruj1'])){
  2. // filtrowanie danych
  3. $how_much = $_POST;
  4. echo "<table>";
  5. foreach($how_much as $creature => $amount){
  6. if($amount > 0)
  7. $karty = $karty . "$creature"." x $amount".'\n';
  8. }
  9. $SQL->query ("INSERT INTO `z_deck` (karty, bohater, uzytkownik, opis) VALUES ('$karty','Xorm,</br> Czempion Otchłani','$_POST[uzytkownik]','$_POST[opis]')");
  10. };

I tu moje pytanie, gdyż wszystkie "zmienne" z monster/champions/event/luck są zapisyane do zmiennej $creature. Jak zrobić, aby każda z tych zmiennych miała osobną nazwę ?aby móć np napisać coś takiego:
  1. foreach($how_much as $creature => $amount){
  2. if($amount > 0)
  3. $karty = $karty . "$creature"." x $amount".'\n';
  4.  
  5. foreach($how_much as $champion => $amount){
  6. if($amount > 0)
  7. $karty = $karty . "$champion"." x $amount".'\n';

mam nadzieję iż jest to zrozumiałe, jak nie, uściślę to jakoś smile.gif
Czekam na wszystkie sugestie i porady, z góry dziękuję za pomoc,
Pozdrawiam
darko
'<select name="</br>' ? wtf? Nadaj poprawną nazwę dla tego selectora, a nie wjeżdżasz ze znacznikami html. Później zobacz po wysłaniu formularza, co kryje się w tablicy globalnej $_POST (np print_r($_POST) ). Proszę uściślić, o co dokładnie chodzi?
bladykiel
'<select name="</br>' zastosowałem na potrzeby jednej z podstron.
Ogólnie skrypt działa poprawnie jednak, nie mogę rozróżnić "zmiennych" gdyż wszystkie dane są zapisywane do 1 "zmiennej"

Chodzi o to, iż nie wiem w jaki sposób zapisać wybrane pola do innych zmiennych, mianowicie:
  1. foreach($how_much as $creature => $amount){
  2.  
  3. if($amount > 0)
  4.  
  5. $karty = $karty . "$creature"." x $amount".'\n';

zapisuje mi wszystkie pola <select name> do jednej zmiennej.
A chciałbym zrobić tak, aby każa "grupa" pól była zapisywana do innej zmiennej tak, abym po wysłaniu formularza mógł wypisać np. tylko wybrane czary.


edt//
No i mam jeszcze jedno pytanko.
Dlaczego gdy nazwy selectów są 2 lub więcej członowe dodaje mi do nich "_" np. wyraz_wyraz .
CuteOne
Szczerze... poczytaj jakieś tutoriale bo to co pokazałeś woła o pomstę do nieba.
bladykiel
Widzę bardzo treściwa pomoc smile.gif Skoroś taki mądraliński, to proszę, znajdź mi tutorial gdzie jest pokazany przykład, który odnosiłby się do mojego problemu... Wiem, że najławiej jest napisać "poczytaj, poszukaj", ale to forum chyba nie służy do tego typu odpowiedzi, racja? Chyba, że się mylę...
Niktoś
Koledze wyżej chodziło o to abyś poduczył się podstaw.
$how_much = $_POST;- ładowanie całej tablicy POST do zmiennej- myślisz,że to dobre?
bladykiel
No właśnie nie wiem. Nie potrafię sobie inaczej z tym problemem poradzić.
Chciałbym aby każda "grupa" zmiennych była zapisana do osobnej tablicy, tak abym mógł je wczytywać osobno np. Jeśli chciałbym wypisać tylko stworzenia to wypisuję tylko stworzenia, natomiast w aktyalnym kodzie, zapisuje mi wszystko do jednej zmiennej.

.
fizzlebubble
A co powiesz na tablice wielowymiarową?
bladykiel
Właśnie próbuję coś kombinować z tablicami, jednak i tak mi nie wychodzi.
Masz jakieś sugestie ?

edit. jak mam coś takiego
  1. foreach($xorm as $spell) {
  2. //if(is_int($number_of_rows / 2)) { $bgcolor = $config['site']['lightborder']; } else { $bgcolor = $config['site']['darkborder']; } $number_of_rows++;
  3. echo '<TR><TD width="150"></TD><TD colspan="2">';
  4. echo '<select name="pole[]">';
  5. for($i=0;$i<=5;$i++){
  6. echo '<option value="'.$spell['nazwa'].$i.'">'.$i.'</option>';
  7. }
  8. echo '</select><a href="/czar-'.urlencode($spell['nazwa']).'.html"><strong>'.$spell['nazwa'].'</strong></a></br>
  9. </TD></TR>';
  10. //--
  11. };

to mogę zastosować foreacha
  1. foreach ($_POST[pole] as $asd => $dsa)

i wypisując zmienną $dsa dostaję nazwe czaru oraz jej ilość. Wszystko było by ok, gdyby nie to, iż nie wiem jak zastosować ifa, aby pola z wartością "0" się nie wyświetlały. Oraz czemu w zmiennej $asd są zapisywane numery od 0 do iluś tam (domyślam się, iż chodzi tu o pozycję w tablicy).

Ktoś ma jakieś propozycje ?

Ok już sobie poradziłem smile.gif
tylko pytanie, czy takie zastosowanie oraz konstrukcja jest poprawna?

  1. foreach($xorm as $spell) {
  2. $number_of_rows++;
  3. echo '<TR><TD width="150"></TD><TD colspan="2">';
  4. echo '<select name="pole[]">';
  5. for($i=0;$i<=5;$i++){
  6. echo '<option value="'.$spell['nazwa'].' x '.$i.'">'.$i.'</option>';
  7. }
  8. echo '</select><a href="/czar-'.urlencode($spell['nazwa']).'.html"><strong>'.$spell['nazwa'].'</strong></a></br>
  9. </TD></TR>';
  10. //--
  11. };
  12. //
  13. echo '<input type="submit" name="wygeneruj1" value="wygeneruj"/></form>';};
  14. if(isset($_POST['wygeneruj1'])){
  15. //
  16. foreach ($_POST[pole] as $asd => $dsa){
  17. $test = strpos($dsa, '0');
  18. if ($test === false) {
  19. echo $dsa.'</br>';
  20. }
  21. }
  22. };
fizzlebubble
Kod html tak w skali 3+/10, ale przypuszczam że to przez ferwor prób i błędów tongue.gif. W linii 17 zawartość $_POST'a nie powinna być w '' ?
bladykiel
szczerze? Bez "" działa jak należy, a z "" jeszcze nie sprawdzałem smile.gif
Co samej składni, owszem była masa prób i błędów smile.gif
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.