Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze: Podmínka při odeslání formuláře

Aktivity
Avatar
michal Čepelák:7.11.2019 9:18

Zdravím,
nevím si rady s podmínko pro formulář telefoních čísel, kde je výběr tel. čísel bud z databáze nebo ruční zadání. Ale vyplněno může být pouze jedno

Zkusil jsem:

If iPhoneID <> "" AND iPhoneID2 <> ""
                echo ( "Může být vyplněno pouze jedno číslo");

Chci docílit: Aby jsem mohl vybrat pouze jedno číslo bud z databáze nebo ho zadat ručně ale nesmí se odeslat obě.

Děkuji za radu

 
Odpovědět
7.11.2019 9:18
Avatar
Jaroslav Smrž
Tvůrce
Avatar
Odpovídá na michal Čepelák
Jaroslav Smrž:7.11.2019 12:01

Ověř, zda je jeden formulář null a když ano, tak vezmi data z druhého. Když budou oba null nebo naopak ani jeden nebude null vyhoď vyjímku.

<?php
$phoneid = $_POST['phoneid'];
$phoneid2 = $_POST['phoneid2'];

if($phoneid != null && $phoneid2 = null) {
    try {
        ...
    }
    catch(exception $e) {
        $message = $e->getMessage();
    }
}

V php moc nedělám, tak nevím, jestli je syntaxe dobře, ale snad tě to nasměruje trochu.

Nahoru Odpovědět
7.11.2019 12:01
/* Life runs on code */
Avatar
Peter Mlich
Člen
Avatar
Peter Mlich:7.11.2019 13:09

On, to, co pises je uplne nesmysl. To uz jasne vidis i z dokumentace, ze tam nemas $ a nejake dalsi veci.
google = php conditions
https://www.php.net/….logical.php

$a nebo $b
$a || $b
$a!='' || $b!=''
// par dalsich tipu, co bys tam mel asi uz mit, ale...
isset() // zjistuje, zda existuje promena, pr $a = isset($_POST['phoneid']) ? $_POST['phoneid'] : ''
strlen()>0 // zjituje, zda delka stringu neni neluva
trim() // odrezava ze zacatku a z konce mezery
preg_replace() // nebo bych nahradil v cisle vse, co neni cislo [^0-9]+ nebo \D+

Cekal bych, ze tam budes mit neco takoveho:

if ($a=='')
  {/*...*/}
elseif ($b=='')
  {/*...*/}
else
  {echo "chyba, oba stringy jsou prazdne"}
 
Nahoru Odpovědět
7.11.2019 13:09
Avatar
Peter Mlich
Člen
Avatar
Peter Mlich:7.11.2019 13:11

Nebo, ty to ches vlastne opacne...

if ($a!='' && $b!='')
  {echo "Může být vyplněno pouze jedno číslo";}
 
Nahoru Odpovědět
7.11.2019 13:11
Avatar
Peter Mlich
Člen
Avatar
Peter Mlich:7.11.2019 13:20

A mozna jeste pozn.

$podminka and $podminka, true/false AND true/false
$cislo and $cislo, 00001010b AND 00001111b = 00001010b
Takze si davej bacha, zda pracujes opravdu s boolean true/false nebo cisly, protoze vysledky muzou byt jine.

"\t"!=""===true - pokud treba string netrimujes od mezer, tabelatoru, tak je vysledek te podminky opacny
" "!=""===true
""!=""===false
Jakoze tam uzivatel muze zapomenout mezeru.

Editováno 7.11.2019 13:21
 
Nahoru Odpovědět
7.11.2019 13:20
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 5 zpráv z 5.