» »

[PHP+HTML]Vprasanje glede forme s comboboxi

[PHP+HTML]Vprasanje glede forme s comboboxi

KernelPanic ::

Spostovani!

Imam par vprasanj glede html forme. Namrec, v formi bi rad imel vec combobox-ov, katerih vsakega je vsebina prejsnja odvisna od prejsnjega. Naprimer, v prvi combobox stlacim kategorije artiklov (ojacevalci, zvocniki, ..., ostale kategorije hifi izdelkov). V drugi combobox stlacim proizvajalce izbrane kategorije. V tretji combobox modele izbranega proizvajalca izbrane kategorije izdelkov. Vendar se tu pojavi problem. V php formi moram predefinirati tri comboboxe, vendar bi rad, da se drugi prikaze, ko je vrednost prvega izbrana, ter, da se tretji prikaze, ko je VELJAVNA vrednost drugega izbrana. Za php formo podatke pobiram iz mysql baze in za filtriranje zapisov rabim vrednosti vseh treh comboboxov. Torej, kako "nadrgradim formo" z novim comboboxom (at runtime), ko je vrednost prejsnjega izbrana? Ter drugo vprasanje: Kako se izognem sumbit gumbu zraven vsakega comboboxa, saj bi rad, da se GET/POST zgodi, ko IZBEREM vrednost v comboboxu in NE, ko pritisnem ustrezen "Next" submit gumb ob doticnem comboboxu?

Vnaprej se zahvaljujem za vase odgovore in lp,
M.

RockyS ::

javascript - json.

google: dynamic populate dropdown javascript

KernelPanic ::

A pol se to v pure php-ju to ne da narest? Ker sem probal ze in sem naletel na probleme ... :D

Oz, kako zmiksam html+js kodo (podobno kot html+php ali pac ne)?

Zgodovina sprememb…

techfreak :) ::

Pure PHP? What?

PHP je strežniški jezik, Javascript pa je na strani odjemalca. Če hočeš uporabljati AJAX, boš moral uporabiti oba.

google: dynamic populate dropdown javascript je dobra ideja, ker boš lahko tudi videl, kako se "zmiksa" html+js+php.

KernelPanic ::

Ja, hvala! Sem se spomnil, da sem vprasal neumnost :D

KernelPanic ::

Ok, to sem vse videl, vendar imam se dve vprasanji:

1) Ali combobox podatke, ki so sicer shranjeni v mysql tabeli, polnem iz strani javascripta ali php-ja?
2) Kako se sicer naredi combobox, vendar, da je ob startu forme skrit?

To sprasujem zato, ker:
- ob prikazu forme je viden samo prvi combobox, vrednosti katerega so pobrane iz mysql tabele
- ko se izbere vrednost prvega comboboxa (brez gumba Next), se pod njim pojavi drugi combobox, ki ima podatke prav tako iz mysql tabele (ne iste kot pri prvem comboboxu), vendar filtrirane glede na izbiro v prvem comboboxu
- itd ...

Lp,
M.

Zgodovina sprememb…

RockyS ::

1. s PHP
2. odvisno od implementacije, lahko jih s pomočjo CSS skriješ in potem z JS prikažeš ampak jaz imam ponavadi vse prikazane, ko je treba pa jih "napolnim"

KernelPanic ::

RockyS je izjavil:

1. s PHP
2. odvisno od implementacije, lahko jih s pomočjo CSS skriješ in potem z JS prikažeš ampak jaz imam ponavadi vse prikazane, ko je treba pa jih "napolnim"
Hvala za odgovor, css-a za1x ne bom mesal, ker sem ze sedaj "izgubljen" :D, pa je mogoce z phpjem vsaj oznaciti kot "readonly", ker, ce ze prikazem vse, da ne bo uporabnik mogel klikati kar povprek, ampak po tocno dolocenem vrstnem redu?

KernelPanic ::

Se nekaj (malo offtopic): Pisem funkcijo, ki vrne array struktur iz mysql (v doloceni tabeli dva stolpca - ime in naziv). Ime in naziv bi rad spravil v neko "strukturo" in to strukturo nato dodal v array. Kako to storim v php. Opravicujem se za debilna vprasanja, ampak sem zacetnik v php in se mi z to stvarjo blazno mudi, prosim za pomoc! V C/C++/C#/... mi je to mala malica, v php mi pa to dela preglavice!

Lp,
M.

phyro ::

array v arrayu? Če se prav spomnim so v PHP-ju vsi array-ji v ozadju narejeni s strukturo, ki je v drugih jezikih znana kot (python -> dictionary, java -> hashmap, al nekaj takega?). Se pravi si ti lahko narediš za vsako tvojo "strukturo" nekaj takega ->
//naredis prazen array za vse podatke
$celoten_array = array();

//dobis array trenutnega imena in naziva
$trenuten_array = array(
  "ime" => $neko_ime,
  "naziv" => $nek_naziv
);

//dodas ta array v celotno zbirko
array_push($celoten_array, $trenuten_array);

mal dvomim da je koda pravilna.

Ti bom še malo razčistil kako stvar deluje.
Browser (client-side) ------------------------------------- Strežnik (server-side)

Ko uporabnik klikne na neko povezavo, pošlje client request za pridobit to stran
Browser (client-side) -------->-------request------->------->-- Strežnik (server-side)

Strežnik pol vidi request in začne sestavljat response (odgovor), ki ga bo poslal browser-ju. Zdej kako boš ti generiral
ta odgovor je pač več možnosti, važno da ga na koncu daš. V tvojem primeru uporabljaš na strežniku jezik PHP, bi ga pa
lahko komot zamenjal s pythonom in podobnimi. Glavno je da, pol kot odgovor pošlješ HTML kodo (lahko tudi javascript, ker se
ta izvaja na strani browserja). Ko strežnik sestavi odgovor, ga pošlje clientu.
Browser (client-side) --<------<-------response-------<---------- Strežnik (server-side)

Ta response, ki ga browser prejme, je HTML (again, lahko tudi javascript noter), ki ti ga pol izriše na ekran. To je sicer mal površno
predstavljeno, sam upam da se ti malo bolj sanja, zakaj nekaterih stvari s PHP-jem ne moreš naredit. PHP je zgolj nek pripomoček za generiranje
odgovora, ki zna brat z baze in podobne stvari. Pol pa echo-aš html, ki ga pošlješ clientu. Če hočeš urejat izgled strani (tudi filanje raznih combobox-ov) ko si že poslal odgovor, pol lahko uporabiš javascript, ki se dogaja na clientu.

RockyS ::

Problem je v tem, ker narobe pristopaš k zadevi.

HTML in CSS greta z roko v roki, enako velja za navezo PHP in HTML.
Govorim iz izkušenj, ker sem sam začel enako, in potem sem moral vložit dosti več truda in časa, da sem se vse priučil (pravi izraz?).

Prvo se nauči HTML in CSS, potem pa se loti PHP oz. vse skupaj bolj povezuj.

cobrica ::

Da ne odpiram nove teme, ima kdo mogoče kakšno enostavno anti bot idejo, ker mi spamajo skozi kontaktni obrazec na strani. Nebi pa rad kakšnih random imiđev uporabljal, ker to potem folk itak avtomatsko odzene proč od obrazca, kr se mu ne ljubi prepisovat številk oz. črk.

RockyS ::

Če bi kdo imel tako skripto bi bil zelo bogat človek.

Drugače pa je vsaj zame najbolj primerna rešitev ta, da postaviš trotl ziher vprašanje "Vpišite glavno mesto Slovenije" in je stvar rešena. Seveda moraš potem upoštevati, da lahko nekdo vnese LJ ali Lublana itd.

shadeX ::

RockyS je izjavil:

Če bi kdo imel tako skripto bi bil zelo bogat človek.

Drugače pa je vsaj zame najbolj primerna rešitev ta, da postaviš trotl ziher vprašanje "Vpišite glavno mesto Slovenije" in je stvar rešena. Seveda moraš potem upoštevati, da lahko nekdo vnese LJ ali Lublana itd.


Ali pa narediš tako:

Glavno mesto Slovenije ( napišite pravilno slovensko ) :D

pomoje bi ljudje razumeli. Je pa dobra ideja glede spamanja obrazcev. Še boljša od številk.

cobrica ::

Sem zdej zaenkrat rešil z inputom, ki je z cssjem skrit, ker ponavadi boti čez obrazec izpolnejo vsa polja, in če je tudi to polje izpolnjeno, ki ga načeloma mi ne vidimo razen če dostopamo z brskalnikom ki ne podpira css, ne pošlje forme, v nasprotnem primeru pa jo. Bom videl kaj sem z tem naredil..

RockyS ::

Zanimiva rešitev ampak kako je s tem v praksi? Nekako se mi zdi čudno, da boti tega ne bi ugotovili ?

cobrica ::

To sem bral po različnih forumih, da kr dobro to pali, kr v večini vsaj polja izpolnejo, tudi tista ki so dejansko neobvezna, kako se pa obnese v praksi pa sporočim čez čas, če bojo še kaj spamal. Bi dal že v štartu al vprašanje al številke, ampak to folk ful odbija od samega kontaktiranja preko strani, tako da je zanenkrat to rešitev, če nebo drugega.


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

C# težava

Oddelek: Programiranje
233502 (2348) mladec
»

c# datagridview in combox

Oddelek: Programiranje
131152 (1040) OmegaM
»

[Visual C#] TableAdapter

Oddelek: Programiranje
61060 (936) detroit
»

Casting comboBox-a c#(forms...)

Oddelek: Programiranje
61245 (1148) Spura
»

[C#] toString ne dela

Oddelek: Programiranje
51278 (1168) rokpok

Več podobnih tem