|
TwojePC.pl © 2001 - 2025
|
 |
A R C H I W A L N A W I A D O M O Ś Ć |
 |
| |
|
[PHP] Pytanie do programistów , Raphi 31/03/08 14:11 Hej, mam takie zadanie i potrzebuje wskazowki jak to najlepiej zrobic w PHP.
Jest ankieta z 5 pytaniami i odpowiedziami TAK i NIE.
Na podstawie odpowiedzi generowanych jest 24 rozne raporty, np.
odpowiedz na pytanie 1 = 0
odpowiedz na pytanie 2 = 1
odpowiedz na pytanie 3 = 1
odpowiedz na pytanie 4 = 1
odpowiedz na pytanie 5 = 0
Zalozenie jest takie, ze musza byc wypelnione wszystkie pola.
Ja wymyslilem ze zrobie tak:
if (empty($_POST['pytanie1']) || empty($_POST['pytanie2']) || empty($_POST['pytanie3']) || empty($_POST['pytanie4']) || empty($_POST['pytanie5'])) {
echo "ODPOWIEDZ NA WSZYSTKIE PYTANIA";
}
else
{
if ($pytanie1==0 && $pytanie2==1 && $pytanie3==1 && $pytanie4==1 && $pytanie5==0) { echo $profil1; }
if ($pytanie1==1 && $pytanie2==0 && $pytanie3==0 && $pytanie4==0 && $pytanie5==1) { echo $profil2; }
itd...
}
Po pierwsze nie dziala mi pierwszy warunek ze sprawdzaniem czy empty czy nie empty (nazwy formularzy sie zgadzaja i generalnie wszystko sie zgadza) - po prostu kiedy odpowiadam na wszystkie pytania to nadal nie mam odpowiedzi.
Czy jest na to jakis sprytniejszy sposob - bo ja to zaprogramowalem jak to sie mowi "po babsku" nie ujmujac wybitnym programistkom :)
To przeciez nie moze byc trudne!Najlepsze pomysły przychodzą
zawsze w najdziwniejszych
miejscach. http://hoonda.pl - po co php? , myszon 31/03/08 14:23
w HTMLu robisz tzw. radio buttons "Tak" i "Nie" oddzielnie dla każdego pytania.- oczywiscie ze tak , Raphi 31/03/08 14:28
ale potem maja sie wyswietlac odpowiedzi - jest ich 24 rozne w zaleznosci od tego jaki zestaw odpowiedzi zostal zaznaczony, np.
1-1-1-0-0
1-1-0-1-0
0-1-0-0-0
i tak 24 razy...Najlepsze pomysły przychodzą
zawsze w najdziwniejszych
miejscach. http://hoonda.pl - ladnie bitowo wyglada .) , Deus ex machine 31/03/08 15:02
zrob na formie i checkbox, pozniej posklejaj wartosci $_POST w zalozonej kolejnosci, tak zebys mial zapisane bitowo i na koniec switchem.
Zkladam, ze checkbox maja nazwy odp1 - odp5
$bit = '';
for ($i = 0; $i < 5 ; $i++) if ( isset( $_POST['odp'.$i] ) && ( $_POST['odp'.$i] == 'on' ) ) $bit .= '1'; else $bit .= '0';
switch ( bindec($bit)) {
case 1:
break
/*
i tu dalej sobie piszesz jakie maja byc odpowiedzi na zalozone wartosci
*/
}"Uti non Abuti" - tak, to tez dobre :) , Raphi 31/03/08 15:05
Wlasnie o cos takiego mi chodzilo ;)
Przy okazji... ile trzeba programowac aby umiec takie rzeczy?
Bo nie wiem czy mi zycia starczy ;)Najlepsze pomysły przychodzą
zawsze w najdziwniejszych
miejscach. http://hoonda.pl - do programowania , Deus ex machine 31/03/08 15:51
podstawa to myslenie, a myslec wiekszosc potrafi .) pozniej juz tylko poznajesz knify z zadanego jezyka. A zycia spokojnie starczy. Ja sie tym bawie juz od poznej podstawowki, czyli jakies 17 lat ,)"Uti non Abuti"
- hmm , akustyk 31/03/08 14:36
$test = TRUE;
for($i=1;$i<=5;$i++){ if (!isset($_POST["pytanie" . $i])) $test = FALSE; };
if (!$test) /* nieodpowiedziano na co najmniej jedno z pytanpytania */ ;
echo "odpowiedzi: ";
for($i=1;$i<=5;$i++) echo "pyt" . $i . ": " $_POST["pytanie" . $i] . " ";http://akustyk.magma-net.pl - :-) , Raphi 31/03/08 15:03
Powiem tylko tyle... genialne w swej prostocie :) Dzieki!Najlepsze pomysły przychodzą
zawsze w najdziwniejszych
miejscach. http://hoonda.pl - heh , Raphi 31/03/08 15:09
Zapomniales kropeczki w ostatniej linii przed $_POST ;DNajlepsze pomysły przychodzą
zawsze w najdziwniejszych
miejscach. http://hoonda.pl - mozna , WooKy 31/03/08 16:20
jeszcze troszke optymalniej - nie robic zmiennej $test, i dac w forze break;
pozniej tylko sprawdzic czy licznik jest mniejszy od 5 -> error.bitnoi.se
- z warunkiem if ok=true, ok=false , TheW@rrior 31/03/08 14:38
Maly przyklad kodu ktory dziala z kontrola wprowadzonych danych:
if($tytul && $rodzaj && $opis && $cena && $czas && $data && $godzina) $ok=TRUE; else $ok=FALSE;
if(!$tytul || !$rodzaj || !$opis || !$cena || !$czas || !$data || !$godzina) //brakuje kompletu danych
if($tytul || $rodzaj || $opis || $cena || $czas || $data || $godzina)
echo "<p style=\"color: red;\">Musisz wypełnić wszystkie pola</p>";
//Pozniej dorzucasz tylko
if($ok)
{
//tu piszesz instrukcje jaka ma byc wykonana po sprawdzeniu wszystkich pol
}People who fear free software are those
whose products are worth even less - ten przyklad jest super dla formularzy tekstowych , Raphi 31/03/08 15:07
I tez mi sie przyda przy innych okazjach, ale ten konkretny przypadek z pytanie1-5 to koledzy pomogli z "for"ami ;)Najlepsze pomysły przychodzą
zawsze w najdziwniejszych
miejscach. http://hoonda.pl
|
|
|
|
 |
All rights reserved ® Copyright and Design 2001-2025, TwojePC.PL |
 |
|
|
|