Autor | Zpráva | ||
---|---|---|---|
slovacik Profil * |
#1 · Zasláno: 14. 2. 2010, 00:03:40
ahojte.. dufam že mi budete vedieť poradiť :).. Môj problém znie: Vytvoril som si pole do ktoreho som uložil mena klubov. Prvá hodnota v poli je false.takže mi pri pohlade na list neukazuje nič. Pomocou funkcie foreach som si vytvoril list ktorý mi kluby ukáže.. Teda vyberem si kluby. ale keď ich chcem porovnať či sú rovnké (pritom su rozlicne alebo nezadal som ich vobec) vypíše mi že sú rozdielne. Nechapem ako ich mam teda porovnať ak nie takto . Ď
<?php echo '<select name="klub_1">'; foreach ($kluby as $kluc => $hodnota){ echo "<option value=\"$kluc_1\">$hodnota</option>\n"; } echo'</select>'; ?> <?php echo '<select name="klub_2">'; foreach ($kluby as $kluc => $hodnota){ echo "<option value=\"$kluc_2\">$hodnota</option>\n"; } echo'</select>'; ?> <? $kluby=array(0=>True, 'jeden_klub', 'druhy_klub'); ?> if(isset($_POST['klub_1'])!==($_POST['klub_2'])) { //ked kluby nie su rovnka echo'klub_1 a klub_2 su rozlicne'; }else{ echo'kluby nie su rozlicne';} Ďakujem za reakcie |
||
AM_ Profil |
#2 · Zasláno: 14. 2. 2010, 00:18:32 · Upravil/a: AM_
<?php $kluby=array(0=>True, 'jeden_klub', 'druhy_klub'); ?> Jinak se podívej na tu podmínku, jakou jsi napsal: Pokud "existuje proměnná $_POST['klub_1']" se rovná $_POST['klub_2']. Výsledek funkce isset() je boolean (true, false), takže samozřejmě výsledek isset() nemá smysl porovnávat s druhým klubem. Myslel jsi zřejmě toto: if(isset($_POST['klub_1'])){ if ($_POST['klub_1']!==$_POST['klub_2']){ echo 'jsou rozdilne'; } else { echo ' jsoou stejne'; } } |
||
mattyZEM Profil |
#3 · Zasláno: 14. 2. 2010, 00:35:08 · Upravil/a: mattyZEM
AM:
> if(isset($_POST['klub_1'])){ > if ($_POST['klub_1']!==$_POST['klub_2']){ nebo spíš if(isset($_POST['klub_1']) and $_POST['klub_1']!==$_POST['klub_2']){} aby neměl zbytečně moc podmínek ve scriptu :P |
||
Majkl578 Profil |
#4 · Zasláno: 14. 2. 2010, 04:25:19 · Upravil/a: Majkl578
mattyZEM:
Tvoje úprava by při nahrazení citované části kódu nedávala smysl. Konkrétně to else v [#2] se nemá vypsat, když $_POST['klub_1'] neexistuje, ale když je splněno $_POST['klub_1'] === $_POST['klub_2'] .
|
||
slovacik Profil * |
#5 · Zasláno: 14. 2. 2010, 12:28:41
diky.. ale prišiel som na daľší úraz a to : vytvoril som textove polia dve
keď zadám NULU buď v jednom alebo druhom políčku skript skolabuje .. Skript ma vlastne najprv zistit ci su to cisla takže som pouzil is_numeric. Ale is_numeric() mi pri zadaní nuly vyhodí hlásene že to nie je číslo.. takže som vyskušal použiť niečo takéto .. <?php if(eregi("^[:alnum:] [0-9][0-9] {1,2}$" , stripslashes(trim($_POST['doma'])))) ?> Dúfam že to nie je tak hrozne zle položená otázka. Ďakujem .. Ďakujem |
||
AM_ Profil |
#6 · Zasláno: 14. 2. 2010, 13:15:05
slovacik:
„Ale is_numeric() mi pri zadaní nuly vyhodí hlásene že to nie je číslo..“ Není pravda. 0 i "0" podle is_numeric() číslo je. Leda jestli tam cpeš NULL, ale 1) to nevím, jak se ti povedlo z formuláře dostat 2) to pochopitelně číslo není. „skript skolabuje“ srdeční zástava? chybová hláška by bodla. Pochybuju, že to spadne, když předáš 0. „if(eregi“ funkce ereg* jsou zastaralé, používej místo nich preg_*, zde preg_match. Výrazy se pouze musí umístit do delimiterů (často se používá /, já raději ~), viz http://php.net/preg_match . „vedeli by ste poradiť ako ošetrím zadaný reťazec aby : Reťazec nebol prázdny, aby reťazec boli len čísla ale nie pismena ?“ is_numeric() prostě funguje. Až tedy na výjimky, 1e4 bere jako 1*10^4, ale to zas tolik nevadí. Nebo můžeš naopak použít funkci intval(), která řetězec na číslo převede (v nejhorším to bude nula, jako ochrana proti chybám to stačí). |
||
Časová prodleva: 14 let
|
0