Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php][html] pola formularza w petli
Forum PHP.pl > Forum > PHP
funky_beat
Witam,
Próbowalem zrobic skrypt wyswietlajacy w petli okreslona liczbe pol formularza:

  1. $i=1;
  2.  
  3. while($i <= $zmienna)
  4. {
  5. ?>
  6.  
  7. <form action="plik.php" method="POST" ENCTYPE="multipart/form-data">
  8. </br><p><b>Podaj wartosc "<?php echo $i;?>"</b> <input type="text" name="ile<?php echo $i;?>" size="2" maxlength="2" value="<?php if (isset($_POST['ile'])) echo $_POST['ile']; ?>" />
  9.  
  10. <?php
  11. ++$i;
  12. }
  13. ?>
  14.  
  15. <br><input type="submit" name="submit" value="OK>
  16. </form>
  17.  
  18. <?php
  19.  
  20. if (isset($_POST['submit']))
  21. {
  22. $nowa = $_POST['ile<?php echo $i;?>'];
  23.  
  24. echo $nowa;
  25. }
  26.  
  27. }
  28.  
  29.  
  30.  
  31. }



ale to nie dziala sad.gif


jak odebrac wartosci ze zmiennych z pol formularza wyswietlanego w petli ? sad.gif
Boski
po pierwsze podomykaj wszystkie nawiasy i cudzysłowy w html
po drogie
  1. $nowa = $_POST['ile<?php echo $i;?>'];


nie istnieje

  1. <?php
  2. $nowa = $_POST['"ile".$i'];
  3. ?>


chya ba tak powinno być porawnie

zamiast:

  1. <?php echo $i;?>


stosuj krutsze

  1. <?= $i;?>


stosuj wcięcia to ułatwia rozpoznanie skłądni

domknij początkowy nawias

i jakoś za dużo masz tych nawiasów.
sniezny_wilk
Cytat(Boski @ 23.12.2007, 23:49:30 ) *
  1. <?php echo $i;?>


stosuj krutsze

  1. <?= $i;?>


stosuj wcięcia to ułatwia rozpoznanie skłądni


Nie zgodzę się z Tobą, poprawnie rozpoczęty plik php to właśnie "<?php". Gdzieś nawet czytałem, że powinno się stosować taki standard.

Nie wiem czy o to Tobie chodziło, ja na szybkiego wymyśliłem coś takiego:

  1. <?php
  2.  
  3. $koniec=2;
  4.  
  5. for($i=0; $i<= $koniec; $i++)
  6. {
  7.  
  8. echo '<form action="pliki.php" method="POST">
  9. </br><p><b>Podaj wartosc "'.$i.' :"</b> <input type="text" name="ile[]" size="2" maxlength="2" value="';
  10. if (isset($_POST['ile'])) echo $_POST['ile'][$i];
  11. echo '" />';
  12.  
  13.  
  14. }
  15. echo'<br><input type="submit" name="submit" value="OK"></form>';
  16. ?>
Boski
no to jak tak czytałeś to można
  1. <?php= $i;?>
funky_beat
sniezny_wilk ok ale jak obsłużyć taki formularz? bo mi przedewszystkim o to chodzilo,

jak wyciagnac te wartosci z tych pół?
Boski
musisz w formularzu za pomocą get lub post przesłać zmienną. A potem na początku pliku sprawdzać czy zmienna istnieje i czy ma wartość równa podanej w formularzu. po czym wykonywać skrypt pobierając zamienne z formularza za pomocą tablicy

$_POST['nazwa pola w formularzu'] lub analogicznie z metoda get
funky_beat
boski no dobra to wiem , ale załóżmy że tych pól w formularzu jest raz 5 a raz 10 więc jak za każdym razem wyciągnąć wartości z każdego z pól?
jang
  1. <?php
  2. $_POST['1'] = 'a';
  3. $_POST['2'] = 'b';
  4. $_POST['3'] = 'b';
  5.  
  6. print_r(array_keys ($_POST));
  7. ?>

a skoro znasz już klucze to w pętli odczytaj sobie ich wartości.
funky_beat
jang a mozesz to wyjaśnić?
mam tablicę kluczy tak?
i teraz powinienem zliczyć ich ilość
i wrzucic w pętlę np takie cos?

  1. <?php
  2. $klucze = count(array_keys ($_POST));
  3.  
  4. for ($a=0; $a < $klucze; $a++)
  5. {
  6. $zmienna = $_POST['zFormularza'];
  7. }
  8. ?>



tak??

zrobilem tak:

  1. <?php
  2. $koniec=2;
  3. for($i=0; $i<= $koniec; $i++)
  4. {
  5. echo '<form action="form.php" method="POST">
  6. </br><p><b>Podaj wartosc "'.$i.' :"</b>
  7. <input type="text" name="ile[]" size="2" maxlength="2" value="';if (isset($_POST['ile'])) echo $_POST['ile'][$i];echo '" />';
  8. }
  9. echo'<br><input type="submit" name="submit" value="OK">
  10. </form>';
  11.  
  12.  
  13. $klucze = count(array_keys ($_POST));
  14. for ($a=0; $a < $klucze; $a++)
  15. {
  16. $zmienna = $_POST['ile[]'];
  17. echo $zmienna."<br >";
  18. }
  19.  
  20. ?>




i jednak cos nie działa
jang
  1. <?php
  2. $_POST['abc'] = '12';
  3. $_POST['def'] = '34';
  4. $_POST['ghi'] = '56';
  5.  
  6.  
  7. //print_r(array_keys ($_POST));
  8.  
  9. $array = array_keys ($_POST);
  10.  
  11. foreach($array as $key)
  12. {
  13. $value = $_POST[$key];
  14. echo 'Ten klucz => <b>'.$key .'</b> ma wartosc => <b>'.$value.'</b><br />';
  15. }
  16. ?>
phpion
  1. <?php define('ILE_POL', 10); ?>
  2. <form action="" method="post">
  3. <?php for($i=0; $i<ILE_POL; $i++): ?>
  4. <p>
  5. <label for="pole<?php echo $i+1; ?>">Pole <?php echo $i+1; ?></label>
  6. <input type="text" name="pole[]" id="pole<?php echo $i+1; ?>" />
  7. </p>
  8. <?php endfor; ?>
  9. <p><input type="submit" value="Go!" />
  10. </form>
  11.  
  12. <?php
  13. if (isset($_POST['pole'][0])) {
  14. foreach ($_POST['pole'] as $pole) {
  15. echo $pole;
  16. }
  17. }
  18. ?>
funky_beat
phpion.com WIELKIE DZIĘKI własnie o to chodziło
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.