Autor Zpráva
Jendak
Profil *
Zdravim,
zajímalo by mě, jak se dělá aby return z funkce se zobrazil na určitém místě. Nevím jak to vysvětlit lépe, proto přiložím ukázku.
<?php

function login ($name, $pass) {
    if (empty($name)) {
        $nameErr = "Zadejte jméno";
        return $nameErr;
    }
    elseif (empty($pass)) {
        $passErr = "Zadejte heslo";
        return $passErr;
    }
    else {
        //další podmínky a konečné přihlášení
    }
}
//následující kod bude v jiném souboru než samotná fce

if (isset($_POST['submit'])) {
    login($_POST['name'], $_POST['pass']);
}
?>
<form method="post" action="#">
    <input type="text" name="name"><br>
    <?php echo isset($nameErr)?$nameErr:"";?>
    <input type="text" name="pass">
    <?php echo isset($passErr)?$passErr:"";?>
    <input type="submit" name="submit">
</form>
A chci aby se chyby vypsali přímo pod inputem, ke kterému patří. Moje řešení nefuguje, nevím v čem je problém. Nebo je to úplně špatně? Díky za pomoc a rady
Michal Maršálek
Profil
Zdravím,
problém je v tom, že při použití return se funkce ukončí.
Jendak
Profil *
Tak jak to mám udělat tak, aby to fungovalo? :D
Michal Maršálek
Profil
Příliš nechápu, co chceš udělat. Na místě, kde voláš tu funkci její return nikam neukládáš ani nevypisuješ.
Jendak
Profil *
No chci vypsat chybové hlášky pod inputama. A ten return se pak snažím vypsat kodem: <?php echo isset($nameErr)?$nameErr:"";?>
Taps
Profil
<?php
 
function login ($name, $pass) {
    if (empty($name)) {
        $nameErr. = "Zadejte jméno";
        
    }
    elseif (empty($pass)) {
        $nameErr. = "Zadejte heslo";
        
    }
    else {
        //další podmínky a konečné přihlášení
    }
return $nameErr;
}
Jendak
Profil *
Taps:
To se sice vypisuje, ale odpadá tím možnost vypsání chyby přímo pod inputem, kterého se to týká. (chyba o nevyplněném jménu se zobrazí pod inputem pro jméno, apod...)
Možná se to tak, jak se já snažím, nedělá. Můžete mi teda poradit jak to udělat správně?
Taps
Profil
Jendak:
co tak použít jquery validation plugin
http://programujte.com/clanek/2009090500-jquery-plugin-validation-plugin-pro-snadnou-kontrolu-formularu/
Jendak
Profil *
Taps:
To je určitě hezké řešení a někdy ho použiju (přidávám do záložek). Ale přecejenom, teď bych to potřeboval udělat za pomoci jen php.
Str4wberry
Profil
1) Podmínka se mi moc nezdá. V případě, že nebude zadáno jméno i heslo se na zadání hesla neupozorní.
2) Funkcí si vraťte pole s žádnou, první, druhou nebo oběma chybami.
$pole = array();
if (podminka) $pole["jmeno"] = "Zadejte jméno";
if (podminka) $pole["heslo"] = "Zadejte heslo";
return $pole;
3) To vrácené pole přiřaďte nějaké proměnné:
$chyba = login();
4) Tím bude v $chyba["jmeno"], resp. $chyba["heslo"] příslušná chyba nebo nic.

Tak nějak by to mohlo fungovat.
Jendak
Profil *
Super, díky! Přesně takle jsem to potřeboval.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0