Autor Zpráva
kopi
Profil
Zdravím,
tohle se tu řešilo několikrát, ale přesto nedokážu opravit tuhle chybu. Mám checkobox:
<input type="checkbox" name="financovani" value="ano">, plus několik dalších polí.

Zpracování formu:
if(isset($_POST['poptavka'])) // POKUD BYL ODESLÁN POPTÁVKOVÝ FORMULÁŘ
{
    
    $id = $_GET['id'];    // ID PRODUKTU
    
    // ZPRACOVÁNÍ ODESLANÝCH POLÍ
    
    $financovani = trim($_POST['financovani']);
    $poznamka = trim($_POST['poznamka']);
    

Odesílám asi 10 polí a všechny to vezme v pohodě, i když nejsou vyplněný. Jediný tenhle checkbox vyhazuje chybu undefined index: financovani. Přitom formulář se pošle i správně zachová => pokud je zaškrtnuto, hodnota je "ano", pokud zaškrtnuto není, hodnota je "ne". Jen to prostě vyhazuje tu hlášku, ale proměnná $financovani je definovaná, když to funguje,ne?

Děkuju.
Alphard
Profil
kopi:
ale proměnná $financovani je definovaná, když to funguje,ne?
Checkbox se z formuláře posílá pouze v případě, že je zaškrtnutý; to je rozdíl oproti třeba textovému inputu, který se odešle vždy (i prázdný).
Pokud checkbox tedy je zaškrtnutý, mělo by být vše v pořádku, bez hlášky. Pokud ale NENÍ zaškrtnutý, tak se daný checkbox vůbec neodešle a proměnná $_POST['financovani'] není definovaná, proto ta hláška (vztahuje se ke klíči pole $_POST, nikoliv přímo k proměnné $financovani).

Řešení je použít isset, např.:
$financovani = isset($_POST['financovani']) ? 'ano' : 'ne';
Dle zaškrtnutí bude v proměnné $financovaní řetězec 'ano' nebo 'ne'.

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: