Autor Zpráva
Filipos
Profil
Dobrý den,

rád bych poprosil někoho zkušenějšího o radu. Mám formulář, u kterého se mají při nevyplnění všech povinných polí zachovat zadané hodnoty v polích. Pokud tedy vyplním dvě ze tří povinných polí a dám odeslat, vypíše se hláška o neúplném vyplnění a vyplněná pole zůstanou vyplněná. Funguje mi to u polí JMÉNO A PŘÍJMENÍ a EMAIL, ale u pole ZPRÁVA nikoli. Pokud vyplním pole ZPRÁVA a k tomu některé z polí JMÉNO A PŘÍJMENÍ nebo EMAIL, po odeslání se pole ZPRÁVA vymaže, vyplněné zůstane jen pole JMÉNO A PŘÍJMENÍ nebo EMAIL. Po úspěšném odeslání formuláře by se také měla zobrazit hláška - Email byl odeslan, ta se mi ale také nezobrazuje.

Nevím si rady, kdyby někdo věděl, budu rád za každou radu.

Děkuji, Filip

Celý kód souboru index.php zde:

<?php  
mb_internal_encoding("UTF-8");

$hlaska = '';
if (isset($_GET['$odeslat'])) 
{
    $hlaska = 'Email byl odeslan';
}

if ($_POST) 
{

    if (isset($_POST['jmeno']) && $_POST['jmeno'] &&
        isset($_POST['email']) && $_POST['email']&&
        isset($_POST['zprava']) && $_POST['zprava']) 

    {
        $jmeno = $_POST['jmeno'];
        $email = $_POST['email'];
        $zprava = $_POST['zprava'];
        $adresa = '@seznam.cz';
        $odeslat = mb_send_mail($adresa, $email, $_POST['zprava'], $jmeno);
    
        if ($odeslat) 
        {
            $hlaska = 'Email odeslan';
            header('Location:index.php?odeslat=ano');
            exit;
        }
        else
        {
            $hlaska = 'Email se nepodarilo odeslat';
        }


    }
    else
    {
        $hlaska = 'Nevyplnili jste pozadovana pole';
    }
}

?>
<!DOCTYPE html>
<html>
<head>
    <title></title>
</head>

<style type="text/css">
form{width: 300px;}    


</style>

<body>

    <a href="http://www.ajkie.wz.cz">DOMU</a>

    <?php
    if ($hlaska)
     {
        echo '<p>' . htmlspecialchars($hlaska) . '</p>';

        $jmeno = (isset($_POST['jmeno'])) ? $_POST['jmeno'] : '';
        $email = (isset($_POST['email'])) ? $_POST['email'] : '';
        $zprava = (isset($_POST['zprava'])) ? $_POST['zprava'] : '';
    }
    ?>
    <form method="POST">
        <fieldset>
        <legend>Kontaktni formular</legend>
        <table>
        
            <tr>
                <td>Jmeno a prijmeni:(vyzadovano)</td>
            </tr>    

            <tr>
                <td><input type="text" name="jmeno" value="<?= htmlspecialchars($jmeno) ?>"></td>
            </tr>

            <tr>
                <td>E-mail:(vyzadovano)</td>
            </tr>

            <tr>
                <td><input type="text" name="email" value="<?= htmlspecialchars($email) ?>"></td>
            </tr>
            
            <tr>
                <td>Zprava:(vyzadovano)</td>
            </tr>

            <tr>
                <td><textarea cols="45" rows="7" name="zprava" value="<?= htmlspecialchars($zprava) ?>"></textarea></td>
            </tr>

            <tr><td>&nbsp;</td></tr>

            <tr>
                <td><input type="submit" value="Odeslat"></td>
                
            </tr>
                
        </table>
        </fieldset>

    </form>

</body>
</html>
abc
Profil
textarea nemá atribut value, defaultní hodnota se dává mezi ty 2 tagy
<textarea><?= htmlspecialchars($zprava) ?></textarea>



a ještě jsem přehlédl druhý dotaz - v té kontrole, zda bylo odesláno nemá být proměnná odeslat, ale string odeslat
Filipos
Profil
Děkuji mnohokrát

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: