Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: formularz w bloku while/for
Forum PHP.pl > Forum > Przedszkole
Karlik_t
Mam problem ze skryptem.
  1. <?php
  2. //instrukcje wcześniejsze
  3. while($user['hp']>&& $enemy['hp']>0){
  4. $tymetur=$etury;
  5. $tymutur=$utury;
  6. while($tymutury>&& $user['hp']>&& $enemy['hp']>0){
  7. echo('<form action=\"\" method=\"post\"><input type=\"submit\" value=\"bb\" name=\"Atak bronią białą\">
  8. <input type=\"submit\" value=\"eu\" name=\"Eliksir uzdrawiający\">');
  9.  if($stat['profession'] == 'Czarodziej' || $stat['profession'] == 'Kapłan'){
  10. echo('<input type=\"submit\" value=\"ac\" name=\"Atak magią\">
  11. <input type=\"submit\" value=\"em\" name=\"Eliksir many\">');}
  12. echo('<input type=\"submit\" value=\"escape\" name=\"Ucieczka\">
  13. <input type=\"submit\" value=\"automat\" name=\"Automatyczna walka\"></form>');
  14.  if(isset($_POST['escape'])){
  15.  
  16. //instrukcje obsługujące dane z formularzu
  17.  
  18. ?>


Problem w tym że while powoduje błąd (for też). Czy jest jakaś możliwość, żeby efekt był taki jak powinien, a żeby nie było błędu (np. w C++ można wypisywać w bloku while informacje na ekran i obsługiwać pobierane wartości). Proszę o w miarę szybką odpowiedź i żeby to było w miarę łopatologicznie wytłumaczone

EDIT: dałem orginalny kod bo użytkownik nospor nie zrozumiał o co i chodziło

A co do bloków while/for to przecież mogą być one zamienne o ile mi wiadomo

Fatal error: Maximum execution time of 10 seconds exceeded in *adres* on line 185

w linjce 185 mam:
while($user['hp']>0 && $enemy['hp']>0){
lub użyte zamiennie:
for( ;$user['hp']>0 && $enemy['hp']>0; ){
nospor
o pierwsze : jaki wywala blad
po drugie : piszesz cos o for, a ja tam widze dwa while jeden po drugim z tym samym warunkiem.
po trzecie. w petli smazyz znacznik <form ... . to raczej jest zle podejscie. tym bardziej ze ciagle ma takie same wartosci.

ten kod nie trzyma sie kupy
Karlik_t
Cytat(nospor @ 2005-06-30 09:30:11)
po trzecie. w petli smazyz znacznik <form ... . to raczej jest zle podejscie. tym bardziej ze ciagle ma takie same wartosci.

Zauważyłem, bo wywala błąd. Założyłem temat żeby ktoś mi pomógł zastosować coś innego, żeby działało
nospor
Dzięki ze mnie wyrozniles w swoim edicie (zabrzmialo jak bym byl glupi czy cos, ale niech ci będzie (po prostu twoj kod nie trzyma sie kupy))

Co ty chcesz osiagnąć. Mas dwa while. w obu warunki ze jakas zmienna ma byc wieksz od 0. Ale w while ty tej zmiennej nie zmieniasz, wiec on ci ciagle wisi w tym while (zapetla sie).

Wiec napisz co ty chcesz zrobic, po co ci te petle i sie nie denerwuj jak ludzie chca ci pomoc
Karlik_t
Dalej zależnie od wyboru są instrukcje, które obniżają zmienne używane w warunku. "//instrukcje obsługujące dane z formularzu" tam to jest.
Nie będę tu wszystkiego przytaczał bo nie taka jest idea. Chodzi mi o to, że dopóki użytkownik ma tury to może wybiierać co chce zrobić. Sprawdzane jest co wybrał, odejmowane tury/HP i żeby znów mógł wybrać (o ile obaj gracze żyją i dany gracz ma jeszcze tury).

P.S.
Sorry za tego edita
nospor
Wyskakuje ci blad bo ci while sie zadlugo przetwarza. Oznacza to, ze te twoje zmienjszanie zmiennych źle dziala i sie skrypt zapetla. Czy oby na pewno ty zmniejszasz to w tym samym skrypcie, czy chciales dopiero zmiejszaj jak gosciu cos zrobi. Jesli tak to zle, bo gosciu moze to u siebie zrobic a skrypt jest na serwerze nie u niego.

Moze wiec jednak pokaz caly kod (te zmniejszanie zmiennych)

ps: przeprosiny przyjete winksmiley.jpg
Karlik_t
Tego kodu byłoby trochę za dużo, po xza tym chodzi o ogólne:
to co mamy
if(isset($_POST['escape'])){//działania}
if(isser($_POST['eu'])){//działania}

itd. do końca

w tych działaniach jest zmniejszenie zmiennych
nospor
warunek
if(isset($_POST['escape']))
nie jest nigdy spelniony. Czemu? po ty submitowi nadajesz name="Ucieczka", a to wlasnie name jest indexem tablicy $_POST, a nie value (u ciebie value="escape")

milego poprawiania biggrin.gif
Karlik_t
To value jest wyświetlane jako link :?: Pogubiłem się. Do tego nawet nie wyświetla formularza, a powinien chyba
nospor
Tu się nie ma co gubić winksmiley.jpg

parametr value - to co widzisz na przycisku
parametr name - jest indexem w $_POST.
czyli powinno byc:
<input type="submit" name="escape" value="Ucieczka">

zmien na podobnej zasadzie pozostale przyciski.

formularz ci sie nie wyswietla bo sie skrypt zapetla.

wywal formualrza przed obie petle. Przecież formularz ma bycwyswietlony raz (a nie milion razy)
Karlik_t
Formularz ma być wyświetlony kiedy możesz wybrać rodzaj wybieranej czynność

P.S.
zaraz poprawię, bo teraz szukam niepotrzebnego zakończenia bloku "}", bo jak zauważyłem że nie zakończyłem jednego to dałem i teraz muszę znaleźć gdzie dałem za dużo :/

EDIT: poprawiłem (zamieniłem name i value) i teraz przetwarza skrypt w nieskończonoś ć, jeszcze dam formularz na początek

EDIT2:
dałem formularz przed pętle i też przetwarza bez końca
nospor
Cytat
Formularz ma być wyświetlony kiedy możesz wybrać rodzaj wybieranej czynność
Nie wiem o co chodzi. Wiem jedno.Formularz ma być wyswietlony raz. W twojej obecnej sytuacji jest generowany w nieskonczoność (tak jak petla). Daj formualrz poza petlą, ewnetulnie naloż na niego jakiegoś if jesli ma byc wyswitelany warunkowo
Karlik_t
Heh teraz nie mogę sprawdzić, bo serwer coś się zepsuł (forum i ftp działa dobrze, a sama stronka (gra) nie)

EDIT: to chyba ten skrypt się zapętlił na moim koncie dlatego nie mogę sprawdzić sad.gif
nospor
Cytat
dałem formularz przed pętle i też przetwarza bez końca
czyli twoje warunki zawsze sa spelnione. źle cos robisz w petli. nie jestem ci juz w stanie pomoc, gdyż nie chcesz pokazac calego kodu (zmniejszanie zmiennych).

Sprawdz ewentualnie czy napewno ci wchodzi w te if ktore zmniejszaja te zmienne. Daj echo w tym if i wyzeruj od razu dana zmienna aby warunek w while nie byl spelniony. jesli wyjdzie i pokaz to co bylo w echo, znaczy ze wchodzi w if co z kolei bedzie oznaczac, ze w tym if zle zmniejszasz zmienne
Karlik_t
Mogę pokazać skrypt ale nie publicznie, masz jakieś gg lub coś w tym stylu :?:
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.