PHP ir IF: zodziu junginio tikrinimas. Kaip? Išspresta
Sveiki,
va vis bandau ir bandau bet niekaip nepavyksta man naudojant IF php programavimo kalboje tikrinti 2 zodzius. Na pvz kaip patikrinti ar pasirinkta "Juodai Balta" ar pan.
nes paprastai naudojant if ($spalva=="Juodai Balta") jis po to veiksmu nebevygdo, kurie yra toliau už šio tikrinimo.
Ačiū
galėtum ir daugiau kodo pateikt.
Isvis veiksmu nevykdo ? ar tik pirma veiksma vykdo, o toliau esanciu nebevyko?
Bandyk:
if ($spalva=="juodai balta") { //Kodas kuris bus vykdomas}
kodas stai toks:
$spalva=$_GET[‘spalva’];
if ($spalva=="Žalia") {$enspalva=“Green”; $ruspalva="Зелeный";}
else {
if ($spalva==“Mėlyna”) {$enspalva=“Blue”; $ruspalva="синий";}
else {
if ($spalva==“Balta”) {$enspalva=“White”; $ruspalva="Белый";}
else {
if ($spalva==“Juoda”) {$enspalva=“Black”; $ruspalva="Чeрный";}
else {
if ($spalva==“Sidabrinė”) {$enspalva=“Silver”; $ruspalva="Серебрян
099;й";}
else {
if ($spalva=="Raudona") {$enspalva="Red"; $ruspalva="Красный";}
else {
if ($spalva=="Vyšninė") {$enspalva="Cherry"; $ruspalva="Вишнeвый";}
else {
if ($spalva=="Pilka") {$enspalva="Grey"; $ruspalva="серое";}
else {
if ($spalva=="Šviesiai pilka") {$enspalva="Light grey"; $ruspalva="светлое серое";}
else {
if ($spalva=="Šviesiai mėlyna") {$enspalva="Light blue"; $ruspalva="светлое синий";}
else {
if ($spalva=="Šviesiai žalia") {$enspalva="Light green"; $ruspalva="светлое Зелeный";}
else {
if ($spalva=="Geltona") {$enspalva="Yellow"; $ruspalva="Золотой";}}}}}}}}
}}}
kur vienas zodis palyginime - ten veiksmai vykdomi
Cia kodo pavyzdys, kaip patikrinti kas pasirinkta:
Tik bite gali iskraipti…
<form name="form1" method="post" action="<? $PHP_SELF ?>">
<p>
<label>
<input type="radio" name="spalva" value="juoda">
Juoda</label>
<br>
<label>
<input type="radio" name="spalva" value="balta">
Balta</label>
<br>
</p>
<p>
<input name="vykdyti" type="submit" value="Tikrinti">
</p>
</form>
<?
if ($vykdyti) {
if ($spalva==“juoda”) {echo(‘O ne! Dabar naktis!’);}
else echo(‘Valio! Ir vel diena!’);
}
?>
as paryskinau vietas kuriose man nepatikrina ir nevykdo tolimesniu veiksmu. Jei tikrinimas yra if($spalva==juoda") {…} - tai vykdo,
o jeigu yra if ($spalva=="juoda balta") {…} - nevykdo
nemačiau ar kas minėjo, bet adrese tarpas žymimas %20
Nereikia taip viska sudetingai… Va perdariau:
<?php $spalva=$_GET[‘spalva’];
if ($spalva=="Žalia") {$enspalva=“Green”; $ruspalva="Зелeный";}
else if ($spalva==“Mėlyna”) {$enspalva=“Blue”; $ruspalva="синий";}
else if ($spalva==“Balta”) {$enspalva=“White”; $ruspalva="Белый";}
else if ($spalva==“Juoda”) {$enspalva=“Black”; $ruspalva="Чeрный";}
else if ($spalva==“Sidabrinė”) {$enspalva=“Silver”; $ruspalva="Серебрян
099;й";}
else if ($spalva==“Raudona”) {$enspalva=“Red”; $ruspalva="Красный";}
else if ($spalva==“Vyšninė”) {$enspalva=“Cherry”; $ruspalva="Вишнeвый";}
else if ($spalva==“Pilka”) {$enspalva=“Grey”; $ruspalva="серое";}
else if ($spalva=="Šviesiai pilka") {$enspalva=“Light grey”; $ruspalva="светлое серое";}
else if ($spalva=="Šviesiai mėlyna") {$enspalva=“Light blue”; $ruspalva="светлое синий";}
else if ($spalva=="Šviesiai žalia") {$enspalva=“Light green”; $ruspalva="светлое Зелeный";}
else if ($spalva==“Geltona”) {$enspalva=“Yellow”; $ruspalva="Золотой";}
?>
Ai jo… Bet isvis adrese tarpai yra nerekomenduojami… Jei spalva imi GET budu is adreso, tai geriau naudoti juodai_balta, o ne juodai balta.
Kam tiek daug if. Makalynė kažkokia. Ne paprasčiau būtų viską į switch sudėti?
as tai isvis patarciau daryti sitaip:
//ta pacia tvarka
$ltcolors = array("Žalia", “Mėlyna”, …);
$encolors = array(“Green”, “Blue”, …);
$rucolors = array("Зелeный", “синий”, …);
$id = array_search($_GET[‘spalva’], $ltcolors);
if($id !== false){
$enspalva = $encolors[$id];
$ruspalva = $rucolors[$id];
}
else echo “Spalva nerasta”;
Nu jo… galima butu… Bet kai as nemoku tai ir nepatariau zmogui
Beje man ir su tarpu adrese veikia…
niekas nepadeda
Isimesk sita koda i index.php:
<?php $spalva=$_GET[‘spalva’];
if ($spalva=="Žalia") {$enspalva=“Green”; $ruspalva="Зелeный";}
else if ($spalva==“Mėlyna”) {$enspalva=“Blue”; $ruspalva="синий";}
else if ($spalva==“Balta”) {$enspalva=“White”; $ruspalva="Белый";}
else if ($spalva==“juodai balta”) {$enspalva=“Black”; $ruspalva="Чeрный";}
else if ($spalva==“Sidabrinė”) {$enspalva=“Silver”; $ruspalva="Серебрян
099;й";}
else if ($spalva==“Raudona”) {$enspalva=“Red”; $ruspalva="Красный";}
else if ($spalva==“Vyšninė”) {$enspalva=“Cherry”; $ruspalva="Вишнeвый";}
else if ($spalva==“Pilka”) {$enspalva=“Grey”; $ruspalva="серое";}
else if ($spalva=="Šviesiai pilka") {$enspalva=“Light grey”; $ruspalva="светлое серое";}
else if ($spalva=="Šviesiai mėlyna") {$enspalva=“Light blue”; $ruspalva="светлое синий";}
else if ($spalva=="Šviesiai žalia") {$enspalva=“Light green”; $ruspalva="светлое Зелeный";}
else if ($spalva==“Geltona”) {$enspalva=“Yellow”; $ruspalva="Золотой";}
echo ($enspalva);
?>
Tada issaugok ir atidaryk adresu: tavo_svetaines_adresas/index.php?spalva=juodai balta
Ir jei ekrane pamatysi "black" tai viskas ok…
ytariu jau zinau kur problema… perduodant duomenis, url issikraipo lietuvisku raidziu kodavimas… ar negaletu taip buti?
naudojant ta pati tavo scripta ir adrese ivedus kaip pvz: Šviesiai žalia neveikia
else if ($spalva=="Šviesiai žalia") kas čia per bezobrazija? Išsiprintink $spalva prieš tikrindamas sąlyga ir manau viskas paaiškės.
bezobrazija tokia kad tai lietuvisku raidziu kodavimas jei ka… atsidaryk dreamweaver ir design mode rasyk LT raides, ir po to isijunk code mode ir pamatysi pats
Apskritai kompiuteriuose lietuvybe yra nelabai priimtinas dalykas … Nors nieks nesako kad nereikia naudoti lietuvisku raidziu…
apskritai tai jei tai saitas, ypatingai dar jei skirtas LT auditorijai, tai lietuvybė būtina, nes kitaip galima ir nukentėti…
pats naudodamas pc gali ir nenaudoti tos lietuvybės nors ir visą gyvenimą.