Autor Zpráva
Andrej.B
Profil
Zdravim,

mam urobene vo formulary podla toho co vyberiem v jednom roletkovom selecte ukaze sa podla toho vyber v druhom. Je to vlastne v javascripte/jquery
Kedze zobrazovanie a nezobrazovanie je len cez class v css subore / nacita sa to vsetko dopredu, mam problem z prenasanim premennej $_POST['id_material'], pretoze prenasa vsetky, co je asi aj normalny stav. Ako docielim toho aby sa mi preniesla len ta cast, ktora nieje prazdna? Alebo ako si ju vytiahnem?
Chcem uzivatelovi zjednodusit vyber materialu, kedze dopredu vie, aky DRUH materialu to je. Vyberie z DRUHU, kde je 5 moznosti a potom mu vybera podla toho nazvy materialov uz odfiltrovane druhom.

Cele je to ukazane na, kde to najlepsie vidno ako to funguje:
codepen.io/anon/pen/QzodgY

Diky za radu
Keeehi
Profil
Nepotřebuješ posílat jen některé hodnoty. Můžeš je poslat klidně všechny, jen se nesmějí jmenovat stejně. Nejlepší tedy bude je přejmenovat a nechat si to poslat jako pole.
Živá ukázka
Tomášeek
Profil
Andrej.B:
Selecty se posílají všechny, to je standardní chování. Tady mají stejné name, pošle se tedy jen ten poslední, jestli dobře vidím.

Pojmenuj si závislé selecty nějak unikátně/polem (ideálně s ID z první volby), pak to bude následovně:
Druh materiálu: $_POST['id_druh_material'];
Druhý select: $_POST['id_material_' . $_POST['id_druh_material']];
Případně polem: $_POST['id_druh_material'][$_POST['id_druh_material']];

Pokud by bylo možností více, je lépe druhý select načítat dodatečně, až po volbě v prvním selectu.
Andrej.B
Profil
to je to co neviem...
v kode pre vlozenie som mal jednoduchu kontrolu, ci bol vybraty material:

 if(trim($_POST[id_material])==''){
          $error_msg.="vlozte nazov materialu<br>";
     }
     
 $id_material = $_POST['id_material'];    

A dalej:

INSERT INTO sklad_polozka (id_sklad_polozka, id_material, ATD.

VALUES ( NULL,
'".$id_material."',
'".$id_druh_material."',
ATD.
[/pre]

Ako mozem urobit tutu kontrolu ak budem mat tych premennych viac a ako vyberiem tu spravnu?


Ked si pozriem co mi obsahuje ten ARRAY pri vybere napriklad tak:
 $id_material=array($_POST['id_material']);
print_r ($id_material);

Vysledok bude:

Array ( [0] => Array ( [1] => 18 [2] => [3] => [4] => [5] => ) )

Ako docielit toho aby som dostal do premenej $id_material v tomto pripade cislo 18? Kedze bola vybrata id_druh_material 2? A dalej ju vlozil do db podla vyssie kodu?

Diky
Keeehi
Profil
Nijak složité to není.
$id_material=$_POST['id_material'][$_POST['id_druh_material']];

Kedze bola vybrata id_druh_material 2?
Zřejmě překlep. Z dat je vidět že 18 je na indexu 1.
Andrej.B
Profil
Keeehi:
pokial to dam takto, tak chyba je :
Errorky: - INSERT INTO sklad_polozka (id_sklad_polozka, id_material, id_druh_material, datum_sklad_polozka, mnozstvo_polozka, cena_polozka, dodaci_list, hmotnost, cislo_objednavky, lot_material, id_user) VALUES ( NULL, 'Array', '1', UNIX_TIMESTAMP(), ' e', ' e', 'e', 'e', 'e', 'e', '1')Incorrect integer value: 'Array' for column 'id_material' at row 1

Nechapem ako docielim ten vyber tej 18. A bol to index 1, ano preklep...
Andrej.B
Profil
Andrej.B:

tak chyba bola medzi klavesnicou a stolickou...
Mal som tam este nizsie pred vlozenim do db riadok : $id_material = $_POST['id_material']; asi zdvojeny riadok, obcas mi to editor notepad++ urobi pri stisknuti klaves... ach jaj :)

diky vsetkym

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