Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Umieszczanie kodów html w echo
Forum PHP.pl > Forum > Przedszkole
Mostrom
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?
Webmasterr
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>
minolone
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. ?>
Mostrom
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']; ?>">
kielich
pokaz jak masz teraz plik w którym jest błąd i zaraz pomożemy smile.gif
Mostrom
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?
everth
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.
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.