Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] odczyt danych
Forum PHP.pl > Forum > Przedszkole
kojoto3
Chodzi o to że mam aniketę, gdzie zaznaczam kilka odpowiedzi, mogę jedną lub więcej
Co zmienić w skrypcie odczytującym aby brał to poduwagę.
Teraz mi wyświetla wszystkie, obojętnie ile zaznaczę.
  1. <?php
  2. echo "Rybą jest:<br/><br/>";
  3. if ($_POST['pole']) echo "- Karp<br/>";
  4.  
  5. else if ($_POST['pole'])echo "- Wieloryb<br/>";
  6.  
  7. else if ($_POST['pole'])echo "- Rekin<br/>";
  8.  
  9. else if ($_POST['pole'])echo "- Panda<br/>";
  10.  
  11. else if (!isset($_POST['pole']) and !isset($_POST['pole'])and !isset($_POST['pole'])and !isset($_POST['pole']))
  12. echo "Ups ... nic nie wybrałeś!<br/>";
  13.  
  14. echo "<br/><br/>";
  15. echo "<a href='zadanie8.php'>Powrót</a>";
  16. ?>
EarthCitizen
Pokaż na początku formularz...

Co do skryptu to źle odczytujesz wartości tablicy $_POST['pole'], zamień na $_POST['pole'][0], $_POST['pole'][1], ..., $_POST['n'] ... A najlepiej to zrobić w pętli... pokaż tylko ten formularz...
kojoto3
  1. <?php
  2. //formatka do wprowadzania danych
  3. function displayCheckBox($form,$submit,$query,$data=array(),$solution=array())
  4. {
  5. echo "<h3>$query</h3>
  6. <form method ='post' action='$form'>
  7. <input type='checkbox' name='pole'/> $data[0]<br>
  8. <input type='checkbox' name='pole'/> $data[1]<br>
  9. <input type='checkbox' name='pole'/> $data[2]<br>
  10. <input type='checkbox' name='pole'/> $data[3]<br><br/>
  11. <input type=submit value='$submit'>";
  12. }
  13. // program
  14.  
  15. $data=array('Karp','Wieloryb','Rekin','Panda');
  16. $solution=array(1,0,1,0);
  17. displayCheckBox('wynik8.php','OK','Które zwierze jest rybą?',$data,$solution);
  18. ?>


i nie bardzo wiem jak zrobić aby zanaczenia porównywał z $solution i odpowiednio wyświetlał, że jest to ryba, albo że nie
EarthCitizen
Poniższą tablicę przenieś sobie do oddzielnego pliku np. baza.php tak abyś mógł ją includować do skryptu z formularzem i skryptu weryfikującego wyniki...

  1. <?php
  2. $data = array('Karp','Wieloryb','Rekin','Panda');
  3. ?>


w formularzu jak chcesz użyć checkboxów aby dać możliwość przekazania kilku wyników to dodaj do pole - [] - tak jak poniżej, dla każdego inputa

Kod
<input type='checkbox' name='pole[]' value='0' /> $data[0]<br>
<input type='checkbox' name='pole[]' value='1' /> $data[1]<br>
<input type='checkbox' name='pole[]' value='2' /> $data[2]<br>
<input type='checkbox' name='pole[]' value='3' /> $data[3]<br>


Tak w ogóle to te inputy możesz zrobić w pętli...

Następnie w wynik8.php

  1. <?php
  2. include('baza.php');
  3.  
  4. if (!empty($_POST['pole']) {
  5.    foreach ($_POST['pole'] as $value) {
  6.        echo $data[$value] . '<br />';
  7.    }
  8. } else {
  9.    echo 'brak odpowiedzi';
  10. }
  11. ?>
kojoto3
coś jest nie tak
w linii if pokazuje błąd
rzymek01
bo jest jeden nawias za malo?

trudno jest się przyjrzeć kodowi?
EarthCitizen
Sorki, z palca to napisałem...
kojoto3
A jak zrobić aby porównywał z $solution
1 prawda
0 fałsz
EarthCitizen
Nie bardzo rozumiem... Masz pytanie na które są 2 odpowiedzi: 1. Tak i 2. Nie ?
rzymek01
Cytat(EarthCitizen @ 22.01.2009, 12:59:26 ) *
Sorki, z palca to napisałem...

to nie ty przepraszaj, tylko kojoto3, który dostał kod i pewnie robi tylko ctrl+v-> ctrl+s-> F5-> nie działa->musze napisac na forum :/
kojoto3
może to ja nie bardzo rozumie,
ale mi chodzi po co zmienna $solution=array(1,0,1,0) ?
w sumie to chciałem aby jak zanaczę nie rybę to żeby mi wyświetlał że to nie jest ryba, albo żeby nie wyświetlał "nie ryby"
EarthCitizen
Cytat
może to ja nie bardzo rozumie,
ale mi chodzi po co zmienna $solution=array(1,0,1,0) ?
w sumie to chciałem aby jak zanaczę nie rybę to żeby mi wyświetlał że to nie jest ryba, albo żeby nie wyświetlał "nie ryby"

biggrin.gif czy komuś jeszcze chce się śmiać ?tongue.gif

Jak się uspokoję to może wrócę do Twojego problemu... a Ty do tego czsu postaraj się sam zrozumieć, jaki miałeś zamiar wprowadzając tę zmienną
rzymek01
dostal.gif

mi się zdaję, że po prostu chcesz zrobić tak:
to jest jakiś quiz, i ty znasz prawidłową odpowiedx, a user ma to zgadnąć i teraz chcesz sprawdzić czy on podał dobrą odpowiedź, a w przypadku błędu zaznaczyć: no niestety, wszystko jest bardziej leniwe niż leniwiec (KMN) ?tongue.gif
kojoto3
jeśli każdy by tak wszystko od razu rozumiał to po co się uczyć.
dolną część skryptu otrzymałem gotową i mam dokończyć aby działał
miło mi że Cię rozbawiłem, ale myślę że VICE VERSA w innych dziedzinach
a forum jest po to by sobie pomagać
EarthCitizen
No nie bierz tak tego do siebie smile.gif Człowieku, przecież tu się ludzie pocą, żebyś miał ten swój quiz, sondę czy co tam jeszcze...
rzymek01
jeszcze raz przypatrz się problemowi, weź kartkę i ołówek i przemysl działanie aplikacji, potem spróbuj to zapisać w PHP
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.