Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Porządkowanie wyświetlonych elementów tablic
Forum PHP.pl > Forum > Przedszkole
Mostrom
Witam! Mam oto taki kodzik, który odlicza po kolei podane liczby.
  1. <form method="post">
  2. odliczaj od:
  3. <input type="text" name="a">
  4. do:
  5. <input type="text" name="b">
  6. <input type="submit" value="Odliczaj!">
  7. </form>
  8. <?php
  9. @$a=$_POST["a"];
  10. @$b=$_POST["b"];
  11. $roznica=$b-$a;
  12. @$tbli[$roznica];
  13. if(!empty($a) AND !empty($b)){
  14. for($index=$a;$index<=$b;$index++){
  15. $elemtbli=$index-$a;
  16. $tbli[$elemtbli]=$index;
  17.  
  18. print_r($index);
  19.  
  20. if($index<$b){
  21. echo ", "; }
  22.  
  23. else{
  24. echo " "; }
  25. }
  26. }
  27. else{ echo "aaaa wpisz zakres!!!"; }
  28. ?>


Chciałbym jakoś uporządkować tablicę, którą mi wyświetla print_r(), mianowicie chciałbym, aby po kilku kolejnych elementach tablicy, dodawał mi odstęp, bo gdy zacznie odliczać od 1 do 400, to sie bałagan robi na stronie. Jak to zrobić?
Fifi209
To musisz sobie napisać swoją funkcję do printowania tablic, dodatkowo dorzucić do tego javascript.
Mostrom
A samym php się nie da? jakoś na warunku if podać mu jakąś wielokrotność klucza tablicy? Na pewno się da biggrin.gif
attimo
Może zlicz ilosc elementow daj warunek ktory podzieli to na tyle ile chcesz.
Fifi209
Cytat(Mostrom @ 9.08.2010, 16:05:54 ) *
A samym php się nie da? jakoś na warunku if podać mu jakąś wielokrotność klucza tablicy? Na pewno się da biggrin.gif

Musiałbyś przeładowywać stronę...bez sensu lepiej wszystko wyrzucić i zwinąć i po stronie użytkownika rozwijać.
Mostrom
Nie musiałbym przeładowywać strony, po co. Udało mi się uzyskać efekt o jak mi chodzi w sposób tzw. "manualny" biggrin.gif mianowicie:
  1. for($index=$a;$index<=$b;$index++){
  2. $elemtbli=$index-$a;
  3. $tbli[$elemtbli]=$index;
  4. if($index==20 OR $index==40 OR $index==60 OR $index==80) {echo "</br>";}
  5. print_r($index);
  6. if($index<$b){
  7. echo ", ";
  8. }
  9.  
  10. else{
  11. echo " "; }
  12.  
  13.  
  14. }

ale to jest zrobione nie zgodnie ze sztuką, poza tym jest ograniczona liczba odliczania. Na 100% da się zrobić to czystym php bez żadnego odświeżania. Jestem przekonany, że da się zrobić warunek że co któreś wykonanie pętli for ma być dadny odstęp. Wpadłem na coś takiego teraz, ale nie wiem czy będzie działać. Usunąć printowanie index z pętli for, za to wyświetlić całą tablicę po uzupełnieniu tej tablicy:
  1. for($x=0, $lczb=count($tbli); $x<$lczb; $x++){
  2. echo $tbli[$x];
  3. while ($lczb=$lczb/20){ // warunek źle zrobiłem, powinno być "jeśli lczb da się podzielić przez 20 i wynik ten jest powyżej 1", ale musze pomyśleć jak to sformuować
  4. echo "</br>";
  5. continue; }


I co myślicie o tym? Gdyby ktoś zgodziłby się ulepszyć w/w kod byłbym wdzięczny smile.gif
Fifi209
O kurde... Ty chcesz odstęp...Wybacz człowiek czasem niewyspany.

Zamiast tak:

  1. if($index==20 OR $index==40 OR $index==60 OR $index==80) {echo "</br>";}


Można tak:
  1. if ($index % 20 == 0) {
  2. echo '<br/>';
  3. }
Mostrom
Yeah dzięki haha.gif nareszcie działa! Wiedziałem, że coś z % haha.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.