Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Umieszczanie kodów html w echo
Mostrom
post
Post #1





Grupa: Zarejestrowani
Postów: 83
Pomógł: 3
Dołączył: 17.04.2007

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


Witam! Ostatnio piszę proste programiki dla utrwalenia sobie wiedzy. Napisałem program, który nazwałem samowykonywacz. On ma spełniać różne funkcje. Po wybraniu z listy (option) pętli jaka ma zostać wykonana, ma zostać załączony plik z innymi danymi do uzupełnienia i samą pętlą za pomocą funkcji include(). Narazie skupiam się nad banalną pętlą for, która będzie odliczała od zera do wybranej przez użytkownika liczby, po jednym. Póki co mam 2 pliki, które się składają na działanie tego programu. Oto program z wyborem jaką pętlę wykonać - samowykonywacz.php:
  1. <form method="post">
  2. <center><h3>samowykonywacz</h3></center>
  3. Co chcesz zrobićquestionmark.gif
  4.  
  5. <select name="dzialanie">
  6. <option value="wybierz">wybierz..
  7. <option value="odliczanie">Odliczanie
  8. //więcej tego typu opcji
  9. </select>
  10.  
  11. <input type="submit" value="wybierz"> </br>
  12.  
  13. <?php
  14. if (!isset($_POST['dzialanie'])) { $_POST['dzialanie'] = NULL; }
  15. switch ($_POST["dzialanie"]){
  16. case "odliczanie": echo 'HAHAHAHAHAAHAHHAAHA Wybrałeś odliczanie </br>';
  17. include("odliczanie.php");
  18. break;
  19.  
  20. default: echo "no wybierz coś"; break;
  21.  
  22. //więcej case'ów
  23. }
  24. ?>
  25. </form>


A teraz plik z pętlą - odliczanie.php
  1. <form method="post">
  2. Odlicz do:
  3. <input type="text" name="a" size="9" maxlenght="10">
  4. <input type="submit" value="ODLICZAJ">
  5. <?php
  6. <form method="post">
  7. Odlicz do:
  8. <input type="text" name="a" size="9" maxlenght="10">
  9. <input type="submit" value="ODLICZAJ">
  10. <?php
  11. if(!empty($_POST["a"])){
  12. for($x=0; $x<=$_POST["a"]; $x++) {
  13. echo $x." ";
  14. }
  15. }
  16. ?>
  17. </form>


Przez cały czas program chodzi ok, po wybraniu operacji ładnie załącza się odliczanie.php, ale po wybraniu górnej granicy odliczania program jakby kończy pętle i przechodzi do samowykonywacza.php bez wyświetlenia cyferek. Domyślam się, że albo nie powinno się w takich sytuacjach includować plików, albo czegoś jeszcze brakuje do uzupełnienia pętli. Co jest źle?

Ten post edytował Mostrom 7.08.2010, 19:19:53
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 6)
Webmasterr
post
Post #2





Grupa: Zarejestrowani
Postów: 71
Pomógł: 5
Dołączył: 7.08.2010

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


Wydaje mi się że powinno być tak:


odliczanie.php:

  1. <form method="post">
  2. Odlicz do:
  3. <input type="text" name="a" size="9" maxlenght="10">
  4. <input type="submit" value="ODLICZAJ">
  5. <?php
  6. <form method="post">
  7. Odlicz do:
  8. <input type="text" name="a" size="9" maxlenght="10">
  9. <input type="submit" value="ODLICZAJ">

  1. <?php
  2.  
  3.  
  4. if(!empty($_POST["a"])){
  5.  
  6. settype($_POST["a"], "integer");
  7.  
  8. for($x=0; $x<=$_POST["a"]; $x++) {
  9. echo $x." ";
  10. }
  11. }
  12. ?>
  13. </form>


--------------------

Darmowe e-booki (kliknij tutaj)
------------------------------------------------------------
Zapunktuj (kliknij tutaj) <--- Zarejestruj się i zobacz!
Darmowe doładowania telefonu, Eurogąbki itp.
------------------------------------------------------------
PHP 5, CSS 2.1, xHTML 1.1, JavaScript 1.7
Go to the top of the page
+Quote Post
minolone
post
Post #3





Grupa: Zarejestrowani
Postów: 141
Pomógł: 24
Dołączył: 21.06.2008

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


Powinno rozwiązać twój problem
samowykonywacz.php
  1. <center><h3>samowykonywacz</h3></center>
  2. Co chcesz zrobić
  3. <form method="post">
  4. <select name="dzialanie">
  5. <option value="wybierz">wybierz..
  6. <option value="odliczanie">Odliczanie
  7. //więcej tego typu opcji
  8. </select>
  9.  
  10. <input type="submit" value="wybierz"> </br>
  11. </form>
  12. <?php
  13. if (!isset($_POST['dzialanie'])) { $_POST['dzialanie'] = NULL; }
  14. switch ($_POST["dzialanie"]){
  15. case "odliczanie": echo 'HAHAHAHAHAAHAHHAAHA Wybrałeś odliczanie </br>';
  16. include("odliczanie.php");
  17. break;
  18.  
  19. default: echo "no wybierz coś"; break;
  20.  
  21. //więcej case'ów
  22. }
  23. ?>


odliczanie.php
  1. <form method="post" action="odliczanie.php">
  2. Odlicz do:
  3. <input type="text" name="a" size="9" maxlenght="10" value="<?php echo $_POST['a']; ?>">
  4. <input type="submit" value="ODLICZAJ">
  5. </form>
  6. <?php
  7. if(!empty($_POST["a"])){
  8. for($x=0; $x<=$_POST["a"]; $x++) {
  9. echo $x." ";
  10. }
  11. }
  12. ?>


Ten post edytował minolone 7.08.2010, 20:06:06
Go to the top of the page
+Quote Post
Mostrom
post
Post #4





Grupa: Zarejestrowani
Postów: 83
Pomógł: 3
Dołączył: 17.04.2007

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


Bardzo dziwna sprawa, bo zmieniłem to co mi napisaliście, i najpierw było tak samo, az nagle udało się i odliczył mi 12 kolejnych liczb. Ale jak chciałem jeszcze raz to zrobić to nie szło. Dodałem w odliczanie.php <form action="pełna ścieżka do programu"> (bo jak dałem samą nazwę pliku z php to po wybraniu submit mówił że nie ma takiego pliku) i działa.. Tylko, że wyświetlane jest na białym tle... sad.gif(( Dziwne...
Co jeszcze można zmienić?
PS: po dodaniu value w input text w polu do wpisania pokazuje się to:
Kod
<br /> <b>Notice</b>:  Undefined index: a in <b>~~\programy\samowykonywacz\odliczanie.php</b> on line <b>3</b><br />

line 3 to właśnie <input type="text" name="a" size="9" maxlenght="10" value="<?php echo $_POST['a']; ?>">

Ten post edytował Mostrom 7.08.2010, 20:28:51
Go to the top of the page
+Quote Post
kielich
post
Post #5





Grupa: Zarejestrowani
Postów: 442
Pomógł: 4
Dołączył: 28.12.2008
Skąd: Warszawa

Ostrzeżenie: (20%)
X----


pokaz jak masz teraz plik w którym jest błąd i zaraz pomożemy smile.gif


--------------------
Życie jest jak SESJA kiedyś wygaśnie ....

Jeśli moja odpowiedź jakoś Cię nakierowała lub pomogła kliknij Pomógł
Go to the top of the page
+Quote Post
Mostrom
post
Post #6





Grupa: Zarejestrowani
Postów: 83
Pomógł: 3
Dołączył: 17.04.2007

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


odliczanie.php
  1. <form method="post" action="programy/samowykonywacz/odliczanie.php">
  2. Odlicz do:
  3. <input type="text" name="a" size="9" maxlenght="10">
  4. <input type="submit" value="ODLICZAJ">
  5. </form>
  6. <?php
  7. if(!empty($_POST["a"])){
  8. settype($_POST["a"], "integer");
  9. for($x=0; $x<=$_POST["a"]; $x++) {
  10. echo $x." ";
  11. }
  12. }
  13. ?>


samowykonywacz.php
  1. <center><h3>samowykonywacz</h3></center>
  2.  
  3. Co chcesz zrobićquestionmark.gif
  4. <form method="post">
  5. <select name="dzialanie">
  6. <option value="aaa">wybierz..
  7. <option value="odliczanie">Odliczanie
  8. </select>
  9. <input type="submit" value="wybierz"> </br>
  10. </form>
  11. <?php
  12. if (!isset($_POST['dzialanie'])) { $_POST['dzialanie'] = NULL; }
  13. switch ($_POST["dzialanie"]){
  14. case "odliczanie": echo 'HAHAHAHAHAAHAHHAAHA Wybrałeś odliczanie </br>';
  15. include("odliczanie.php");
  16. break;
  17.  
  18. default: echo "no wybierz coś"; break;
  19. }
  20. ?>


To jest taki kod jaki działa, ale bez oprazy graficznej, bo nie pracuje na index.php sad.gif( to przez action="programy/samowykonywacz/odliczanie.php" w pliku odliczanie.php. Bez tego wogóle nie działa.

Dzięki za porady smile.gif


EDIT:: AAA jednak nie dziła zupełnie dobrze!! Tylko za pierwszym razem podaje ciąg liczb. Jak się kliknie drugi raz to dodaje do adresu programy/samowykonywacz/odliczanie.php. To nie może zmieniać adresu! to ma działać na include. CZemu tak jest?

Ten post edytował Mostrom 7.08.2010, 20:55:25
Go to the top of the page
+Quote Post
everth
post
Post #7





Grupa: Zarejestrowani
Postów: 782
Pomógł: 153
Dołączył: 21.07.2010

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


Nie może być kilku tagów <form> na jednej stronie. Tzn. mogą być ale wtedy sami prosimy się o problemy. Gdy wybierzemy coś na stronie, w wyniku otrzymamy dwa formularze - pierwszy "Co zrobić" i drugi "Odlicz". Naciśnięcie któregokolwiek submit spowoduje wysłanie ich obu.

Czyli automatycznie znów includuje się jakiś plik typu "Odlicz" i dodatkowo dostaje zmienne z poprzedniego "Odlicz", albo da że nie ma takiego pliku (bo poprzedni formularz zaznaczył na liście jakiś brak). Rozdziel to na dwa osobno wywoływane pliki albo za pomocą switch() wybieraj jakie formularze chcesz wyświetlić na stronie.


--------------------
Już mi się ani wiedzieć, ani tym bardziej myśleć nie chce.
[Think different]!
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 Aktualny czas: 21.08.2025 - 13:48