Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php][HTML] Tablice GET/POST
Forum PHP.pl > Forum > Przedszkole
Beton2006
Witam serdecznie, mam dosc duzy problem z pewnym szkolnym cwiczeniem.
Otoz tak w skrocie:

Czy ktos bylby w stanie rozwiazac to zadanie?

1. Stworzyc strone HTML ktora ma miec :
-text - liczba graczy
-text - liczba dziweczyn
-text - liczba chlopcow
-submit

2. Druga strona(*.php) po odebraniu danych ma sprawdzic czy ilosc chlopcow + ilosc dziewczyn = liczba graczy.Jak tak powinna pojawic sie tabela zawierajaca tyle linii ilu jest razem graczy a w kazdej linii dwa pola text - jedno na imie ,drugie na punkty. W dodatku pola dziweczyn maja miec kolor rozowy a chlopcow niebieski.

3. Trzecia strona po odebraniu danych od strony poprzedniej ma sprawdzic ktory z graczy uzyskal powyzej 50 punktow i wydrukowac tabele zawierajaca tylko ich imiona.Rowniez w tym przypadku pola dziewczat powinny byc rozowe a chlopcow niebieskie.

To moje cwiczenie na uniwersytecie i bardzo bym was prosil o pomoc bo dosc dlugo sie z tym mecze i nie moge dopowadzic go do konca ( zablokowalem sie w III fazie ).

Z gory dziekuje...
Chemiq
a może pokaż ile zrobiłeś to wtedy ktoś Ci pomoże bo nie sądzę że komuś się chce robić całe Twoje zadanie od podstaw
Beton2006
No fakt. Wklejam kolejno:

1 faza:
  1. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
  2. <title>Totale del 14/02/2006</title>
  3.  
  4.  
  5. </head>
  6.  
  7. <form name="form1" action="totale14026006_a.php" method="post" >
  8. <p>Numero giocatori <input type="text" name="giocatori" /></p> <br />
  9. <p style="background-color:#CC3399"> Numero femmine <input type="text" name="femmine" /></p> <br />
  10. <p style="background-color:#0066FF"> Numero maschi <input type="text" name="maschi" /></p><br />
  11. <input type="submit" value="Vai alla fase sucessiva" />
  12. </form>
  13. </body>
  14. </html>


2 faza:
  1. <?php
  2.  
  3.  // controllo se i dati sono inseriti
  4.  if( empty($_POST['giocatori']) == false && empty($_POST['femmine']) == false && empty($_POST['maschi']) == false) {
  5. //inverto i valori nei interi 
  6. $giocatori = intval($_POST['giocatori']);
  7. $femmine = intval($_POST['femmine']);
  8. $maschi = intval($_POST['maschi']);
  9.  // conroloo se fmmine + maschi = giocatori
  10.  if( $femmine + $maschi == $giocatori ) {
  11.  
  12. echo("<table border=2>");
  13. //stampo tante righe della tabella quanti sono i giocatori 
  14. $i = 0;
  15. $f = 1;
  16. $m = 1;
  17. $numF = 1;
  18. $numM = 1;
  19. while($i <= $giocatori && $f <= $femmine) {
  20.  echo("<tr style='background-color:#FF80C0'><td><input type='text' name='nome_femmina".$numF."' value='nome' /></td><td><input type='text' name='punti_femmina".  $numF."' value='punti' /></td></tr>");
  21.  $i++;
  22.  $f++;
  23.  $numF++;
  24.  
  25. }
  26. while($i < $giocatori && $m <= $maschi) {
  27.  echo("<tr style='background-color:#0080FF'><td><input type='text' name='nome_maschio".$numM."' value='nome' /></td><td><input type='text' name='punti_maschio".  $numM."' value='punti' /></td></tr>");
  28.  $i++;
  29.  $m++;
  30.  $numM++;
  31. }
  32.  
  33.  
  34. echo("</table>");
  35.  }
  36.  else {
  37. echo("<h1> ERRORE ! </h1>");
  38. echo("<h3><a href='totale14022006.html'> Torna alla pagina iniziale </a></h3>");
  39.  }
  40.  
  41.  }
  42.  else {
  43. echo("<strong> Inserire tutti i valori </strong>");
  44.  }
  45.  
  46.  
  47.  
  48. ?>
  49. <input type="hidden" name="numeroGiocatori" value="<?php echo $giocatori; ?>" />
  50. <input type="hidden" name="numeroFemmine" value="<?php echo $femmine ; ?>" />
  51. <input type="hidden" name="numeroMaschi" value="<?php echo $maschi; ?>" />
  52. <input type="submit" value="Vai alla fase sucessiva" />
  53. </form>


3. Faza :

i tu nie potrafie odczytac poszczegolnych wartosci .

Nazwy sa po wlosku lecz sadze ,ze nie powinno to wam sprawic klopotu.
spryciula
ehhh, cwaniaczku, a ile dajesz za zrobienie za Ciebie tego zadania?questionmark.gif?, nawet sam nic nie napisałeś(ściągnąłeś sobie skądąś pliki) tylko wrzucasz to na forum i czekasz na rozwiązanie

faza3 może wyglądać tak

  1. <?php
  2.  
  3. $ilosc_graczy = $_POST['gracze'];
  4. $ilosc_dziewczyn= $_POST['kobiety'];
  5. $ilosc_chlopcow= $_POST['mezczyzni'];
  6.  
  7.  
  8. echo "<table align="center" width="30%" border="1">";
  9.  
  10. for( $x=; $x<=$ilosc_dziewczyn ; $x++) {
  11.  
  12. $imie_dz = $_POST['imie_dz'.$x];
  13. $punkty_dz = $_POST['punkty_dz'.$x];
  14. if($_POST['punkty_dz'.$x]>=50){
  15. echo "<tr style="background-color:#CC3399"><td>Imię:$imie_dz</td><td><input type="text" value="$punkty_dz" readonly="tak"></td></tr>";
  16. }
  17. }
  18.  
  19. for( $i=; $i<=$ilosc_chlopcow ; $i++) {
  20.  
  21. $imie_ch = $_POST['imie_ch'.$i];
  22. $punkty_ch = $_POST['punkty_ch'.$i];
  23. if($_POST['punkty_ch'.$i]>=50){
  24. echo "<tr style="background-color:#0066FF"><td>Imię:$imie_ch</td><td><input type="text" value="$punkty_ch" readonly="tak"></td></tr>";
  25. }
  26. }
  27.  
  28.  
  29. echo "</table>";
  30. ?>


faza2

  1. <?php
  2.  
  3. $ilosc_graczy = $_POST['gracze'];
  4. $ilosc_dziewczyn= $_POST['kobiety'];
  5. $ilosc_chlopcow= $_POST['mezczyzni'];
  6.  
  7.  
  8. echo "<table align="center" width="30%" border="1">";
  9.  
  10. for( $x=; $x<=$ilosc_dziewczyn ; $x++) {
  11.  
  12. $imie_dz = $_POST['imie_dz'.$x];
  13. $punkty_dz = $_POST['punkty_dz'.$x];
  14. if($_POST['punkty_dz'.$x]>=50){
  15. echo "<tr style="background-color:#CC3399"><td>Imię:$imie_dz</td><td><input type="text" value="$punkty_dz" readonly="tak"></td></tr>";
  16. }
  17. }
  18.  
  19. for( $i=; $i<=$ilosc_chlopcow ; $i++) {
  20.  
  21. $imie_ch = $_POST['imie_ch'.$i];
  22. $punkty_ch = $_POST['punkty_ch'.$i];
  23. if($_POST['punkty_dz'.$i]>=50){
  24. echo "<tr style="background-color:#0066FF"><td>Imię:$imie_ch</td><td><input type="text" value="$punkty_ch" readonly="tak"></td></tr>";
  25. }
  26. }
  27.  
  28.  
  29. echo "</table>";
  30. ?>


faza1
  1. <?php
  2. <head>
  3. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2" />
  4. <title>Test dla leniucha</title>
  5.  
  6.  
  7. </head>
  8.  
  9. <body>
  10. <form name="form1" action="faza_2.php" method="post" >
  11. <table align="center" width="30%" border="1">
  12. <tr ><td>Ilość graczy</td><td> <input type="text" name="gracze" value="0"></td></tr>
  13. <tr style="background-color:#CC3399"><td>Ilość dziewcząt</td><td><input type="text" name="kobiety" value="0"></td></tr>
  14. <tr style="background-color:#0066FF"><td>Ilość chłopców</td><td><input type="text" name="mezczyzni" value="0"></td></tr>
  15. <tr><td><input type="submit" value="ZatwierdĽ" /></td> </tr>
  16. </table>
  17. </form>
  18. </body>
  19. </html>
  20. ?>
Beton2006
Nie musisz sie od razu denerwowac, tylko poprosilem was o pomoc.

To co wklejilem to sam napisalem, lecz jakie to ma znaczenie.

A tak poza tym to dzieki za zainteresowanie,zmodyfikowalem cwiczenie wg twojego wzoru ale wciaz nie potrafie w 3 fazie odczytac poszczegolnych wartosci :
Wkleje moja faze 2:
  1.  
  2. <?php
  3.  
  4. $numero_giocatori = $_POST['giocatori'];
  5. $numero_femmine = $_POST['femmine'];
  6. $numero_maschi = $_POST['maschi'];
  7.  
  8.  
  9.  
  10.  if ($numero_giocatori == $numero_femmine + $numero_maschi) {
  11.  
  12.  echo ("<table align="center" width="30%" border="1">");
  13.  
  14.  for( $x=; $x <= $numero_femmine ; $x++) {
  15.  echo("<tr style='background-color:#CC3399'><td><input type='text' name='nome_femmina.$x'/></td><td><input type='text' name='punti_femmina.$x'/></td></tr>");
  16.  
  17.  }
  18.  
  19.  for( $i=; $i <= $numero_maschi ; $i++) {
  20.  echo("<tr style='background-color:#0066FF'><td><input type='text' name='nome_maschio.$i'/></td><td><input type='text' name='punti_maschio.$i'/></td></tr>");
  21.  
  22.  }
  23.  
  24.  
  25.  }
  26.  else {
  27.  die("<h1> ERRORE ! </h1><br><h3><a href='fase1.html'> Torna alla pagina iniziale </a></h3>");
  28.  }
  29.  
  30.  
  31.  echo("<tr><td><input type='submit' value='Fase sucessiva' /></td></tr>");
  32.  echo("</table>");
  33.  
  34.  
  35. ?>
  36. <input type="hidden" name="giocatori" value="<?php echo $numero_giocatori; ?>" />
  37. <input type="hidden" name="femmine" value="<?php echo $numero_femmine; ?>" />
  38. <input type="hidden" name="maschi" value="<?php echo $numero_maschi; ?>" />
  39.  
  40. ?>


W fazie 3 "postem" przechodza nastepujace dane,np:

Array ( [nome_femmina_1] => ala [punti_femmina_1] => 9 [nome_femmina_2] => ola [punti_femmina_2] => 8 [nome_maschio_1] => olek [punti_maschio_1] => 9 [giocatori] => 3 [femmine] => 2 [maschi] => 1 )

... i tu wydaje sie wszystko ok. Ale jak np. chce aby mi wyswietlilo imiona wszystkich dziewczat(juz pomijajac te powyzej 50 punktow) to zaczyna sie problem (nie daje zadnego bledu tylko po prostu pusty ekran):

Przykladowy kod poczatku 3 fazy:
  1. <?php
  2.  
  3.  print_r($_POST); 
  4.  
  5.  $numero_giocatori = $_POST['giocatori'];
  6.  $numero_femmine = $_POST['femmine'];
  7.  $numero_maschi = $_POST['maschi'];
  8.  
  9.  echo("<table align="center" width="30%" border="1">");
  10.  
  11.  for($x=; $x <= $numero_giocatori ; $x++) {
  12.  
  13.  $nome_femmina = $_POST['nome_femmina'.$x];
  14.  $punti_femmina = $_POST['punti_femmina'.$x];
  15.  
  16.  echo("<tr><td>".$nome_femmina."</td><td>".$punti_femmina."</td></tr>");
  17.  }
  18.  
  19.  
  20.  
  21.  
  22.  
  23.  
  24.  echo("</table>");
  25.  
  26. ?>


A wiec problem : jak odczytac poszczegolne imiona i punkty zawodnikow?questionmark.gif

Dzieki z gory
gebp
Podpowiem
  1. <?php
  2. $gracze=Array ( [nome_femmina_1] => ala [punti_femmina_1] => 9 [nome_femmina_2] => ola [punti_femmina_2] => 8 [nome_maschio_1] => olek [punti_maschio_1] => 9 [giocatori] => 3 [femmine] => 2 [maschi] => 1 ) ;
  3.  
  4. echo $gracze['nome_femmina_1']; // wyświetli ala
  5. echo $gracze['punti_femmina_1']; // wyświetli 9
  6.  
  7. ...
  8. echo $gracze['maschi']; // wyświetli 1
  9. ?>
Beton2006
hmmm...dzieki za zaiteresowanie ale zle mnie zrozumiales.

Pojedyncze wartosci z tablicy $_POST potrafie odczytac, nie potrafie odczytac ich stosujac petle.
Np. w moim przykladzie nie potrafie wyswietlic powiedzmy wszystkie imiona dziweczat lub chlopcow (stosujac petle oczywiscie).
gebp
  1. <?php
  2. $gracze=Array ( [nome_femmina_1] => ala [punti_femmina_1] => 9 [nome_femmina_2] => ola [punti_femmina_2] => 8 [nome_maschio_1] => olek [punti_maschio_1] => 9 [giocatori] => 3 [femmine] => 2 [maschi] => 1 ) ; // "baza"... tabela graczy
  3.  
  4. $x=$gracze['femmine'] // liczba dziewczyn (czy to włoski questionmark.gif?)
  5. $y=$gracze['maschi'] // liczba chłopców
  6.  
  7. for ( $i=1; $i<$x; $i++)  // dziewczyny
  8. { $klucz="nome_femmina_";  //osobiście zmienił bym nazwy kluczy w tablicy $_POST
  9.  $klucz .=$i;
  10.  $klucz2="punti_femmina_";
  11.  $klucz2 .=$i;
  12.  echo ("Zawodniczka :".$gracze[$klucz]." Punktów: ".$gracze[$klucz2]."</br>");
  13.  
  14. for ( $i=1; $i<$y; $i++)  // chłopcy
  15. { $klucz="nome_maschio_";  
  16.  $klucz .=$i;
  17.  $klucz2="punti_maschio_";
  18.  $klucz2 .=$i;
  19.  
  20. echo ("Zawodnik :".$gracze[$klucz]." Punktów: ".$gracze[$klucz2]."</br>");
  21. }
  22. ?>
Beton2006
Proboje ale NIC sad.gif

A wiec robie tak jak pisales ale nic mi nie drukuje (pusty ekran).

Postem z fazy 2 dochodzi powiedzmy:

Array ( [nome_femmina_1] => ala
[punti_femmina_1] => 9
[nome_femmina_2] => ola
[punti_femmina_2] => 7
[giocatori] => 2
[femmine] => 2
[maschi] => 0 )

Proboje tak jak mowiles, tzn:
  1. <?php
  2. $gracze = Array($_POST);
  3.  
  4.  $x = $gracze['femmine']; // liczba dziewczyn (czy to włoski questionmark.gif?)
  5.  $y = $gracze['maschi']; // liczba chłopców
  6.  
  7.  for ( $i=1; $i <= $x ; $i++) {
  8.  
  9.  $klucz="nome_femmina_";  
  10.  $klucz .=$i;  
  11.  $klucz2="punti_femmina_";  
  12.  $klucz2 .=$i;  
  13.  
  14.  echo ("Zawodniczka :".$gracze[$klucz]." Punktow: ".$gracze[$klucz2]."</br>");
  15.  } 
  16. ?>

... i tak jak pisalem -> pusty ekran sad.gif...

...juz sam nie wiem blink.gif (tak,to Wloski).
gebp
dobra.

Po pierwsze
  1. <?php
  2. $gracze = $_POST;
  3. ?>

i po podaniu
  1. <?php
  2. print_r $_POST;
  3.  
  4. // powinno dać
  5. //Array ( nome_femmina_1=>'ala', punti_femmina_1=>'9', nome_femmina_2=>'ola', punti_femmina_2=>'8', nome_maschio_1 =>'olek', punti_maschio_1 =>'9', giocatori =>'3', femmine =>'2', maschi =>'1' );
  6. ?>


czyli całość
  1. <?php
  2. $gracze=$_POST; // w twoim przypadku.
  3.  
  4. print_r $gracze; // sprawdzenie 
  5.  
  6. //$gracze=Array ( nome_femmina_1=>'ala', punti_femmina_1=>'9', nome_femmina_2=>'ola', punti_femmina_2=>'8', nome_maschio_1 =>'olek', punti_maschio_1 =>'9', giocatori =>'3', femmine =>'2', maschi =>'1' ); // tak powinna wyglądać zmienna $gracze
  7.  
  8. $x=$gracze['femmine']; // liczba dziewczyn (czy to włoski questionmark.gif?)
  9. $y=$gracze['maschi']; // liczba chłopców
  10.  
  11. for ( $i=1; $i<=$x; $i++)  // dziewczyny
  12. { $klucz="nome_femmina_";  //osobiście zmienił bym nazwy kluczy w tablicy $_POST
  13.  $klucz .=$i;
  14.  $klucz2="punti_femmina_";
  15.  $klucz2 .=$i;
  16.  echo ("Zawodniczka :".$gracze[$klucz]." Punktów: ".$gracze[$klucz2]."</br>");
  17. }  
  18.  
  19. for ( $i=1; $i<=$y; $i++)  // chłopcy
  20. { $klucz="nome_maschio_";  
  21.  $klucz .=$i;
  22.  $klucz2="punti_maschio_";
  23.  $klucz2 .=$i;
  24.  
  25.  echo ("Zawodnik :".$gracze[$klucz]." Punktów: ".$gracze[$klucz2]."</br>");
  26. }
  27. ?>


Sprawdzałem powyższe (oczywiście oprócz POST'a) u siebie i dział.
Nie ukrywam zrobiłem parę pomyłek, a u mnie tak zawsze gdy pisze z palca.
Beton2006
OK!!! Dziala jak nalezy, naprawde, bardzo dziekuje za pomoc.

POZDRAWIAM!!!
spryciula
sorki, nie uniosłem się, zmylił mnie ten włoski

a poza tym zapomniałem w fazie II wkleić tego kodu

  1. <?php
  2. echo "<input type="hidden" name="gracze" value="$ilosc_graczy" >";
  3. echo "<input type="hidden" name="kobiety" value="$ilosc_dziewczyn" >";
  4. echo "<input type="hidden" name="mezczyzni" value="$ilosc_chlopcow" >";
  5.  
  6.  
  7. echo "</form>";
  8. ?>


sorki, może dlatego ci to zmyliło smile.gif smile.gif
Beton2006
No problem, wazne ,ze dziala.

Dzieki wielkie
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.