PHP týden Předvánoční slevová akce
Pouze tento týden sleva až 80 % na PHP e-learning!
Využij předvánočních slev a získej od nás 20 % bodů zdarma! Více zde
Avatar
michal Čepelák:7. listopadu 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. listopadu 9:18
Avatar
Jaroslav Smrž
Redaktor
Avatar
Odpovídá na michal Čepelák
Jaroslav Smrž:7. listopadu 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. listopadu 12:01
/* Life runs on code */
Avatar
Peter Mlich
Člen
Avatar
Peter Mlich:7. listopadu 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. listopadu 13:09
Tento výukový obsah pomáhají rozvíjet následující firmy, které dost možná hledají právě tebe!
Avatar
Peter Mlich
Člen
Avatar
Peter Mlich:7. listopadu 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. listopadu 13:11
Avatar
Peter Mlich
Člen
Avatar
Peter Mlich:7. listopadu 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. listopadu 13:21
 
Nahoru Odpovědět
7. listopadu 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.