Pozivanje php funkcije pomoću <a href>

Tvoj problem u ovom slučaju nije PHP nego HTML. Href (hypertext reference) je poveznica prema drugoj lokaciji.

Ti pokušavaš izvršiti PHP funkciju unutar linka, što bi bilo ekvivalentno kao da ostaviš 200 kuna na sjedištu automobila i očekuješ da ćeš umjesto novca sutra tu pronaći namirnice. Ne funkcionira tako. Trebaš uzeti lovu, otići autom tamo gdje trebaš, kupiti što hoćeš i vratiti se natrag.

Da, upravo sam to na početku i napisao. Da citiram sebe samog:

I što mi je još čudnije i nejasnije, pozivanje funkcije na ovaj način uradi tačno ono što mi treba, ali je onda problem onclick.

I meni se čini da fulaš skroz poantu, kako kaže @avetma , ali to ne mogu znati dok mi ne odgovaraš na pitanja. Jer ja svojim pitanjima pokušavam dokučiti što ti znaš i što ne znaš…a ti nekako uvijek preskočiš odgovoriti :slight_smile:

Ponovit ću. Nakucaj ručno HTML za taj anchor tag <a> kakav želiš da vidi browser.

I drugo pitanje, jer te izgubih malo.
Što ti želiš da se desi klikom na taj link?

Onim kôdom nisi ništa izbrio nego si samo sakrio. Nema nikakve komunikacije s bazom podataka.

pozivanje funkcije na ovaj način uradi tačno ono što mi treba, ali je onda problem onclick

Zato jer si već učitao stranicu - PHP je već izvršen. Ne možeš ga na taj način “pauzirati” dok se ne dogodi onclick. Ono što možeš jest ili
a) proučiti PHP/AJAX (uz pomoć javascripta pozvati php dokument, iskomunicirati s njim što treba obaviti, i dobiti update na trenutnoj stranici bez ikakvog “refresha”)
b) proučiti kako funkcionira submit formulara, što preporučam jer mislim da je ovo pod (a) kratica za koju da bi je razumio trebaš najprije shvatiti ovo pod (b).

Računaj s tim da je moje neznanje nepregledno kao pučina. I ako izađemo na pučinu bojim se da nema nazad… :blush:

Pročitam ja svaku tvoju rečenicu i trebaće malo vremena da to legne sve na svoje, i u svim detaljima. Bistri se slika uz tvoju pomoć, ali znaš kako je to, ne možeš u svakom trenutku odvojiti neograničeno vremena… tekuće obaveze, rokovi i to…

Imam ikonicu koja kad se klikne treba izazvati dvije akcije:

  1. brisanje div-a (tj. skrivanje) (<a onclick>)
  2. mala promjena u bazi (to je taj <a href> za koji sam pitao može li pozivati funkciju)

Pritom mi nije bitan redoslijed kojim će se izvršavati.

Da, sakrivanje je u pitanju. Obični JS.

Rado bih izbjegao AJAX, ako je ikako moguće.
Da li nešto mijenja činjenica da mi nije bitan redoslijed izvršavanja te dvije akcije (JS sakrivanje i PHP komunikacija s bazom)?
Jer ako unutar <a> probam odvojeno (samo href ili samo onclick) to radi, ali ako je zajedno radi samo href.

Klikom na ikonicu za brisanje/unos ti nužno moraš ići na novu stranicu.

Na toj stranici ne mora biti ništa vidljivo. Može se obaviti php funkcija, izbrisati iz baze, i promptno automatski povratak na ovu prvu stranicu na kojoj onda više nećeš vidjeti taj redak jer je upravo izbrisan.

JS je tu suvišan.

Kada stavim
onclick='document.getElementById("dname<?php echo $ii ?>").style.display = "none";
obriše lijepo, povuče ostatak liste nagore, i to sam htio da zadržim. Jako lijepo izgleda.
Ali ako baš ne ide, mogu pokušati i tako kako kažeš.

Možeš ti to ostaviti kao efekt, ali se vjerojatno neće ni vidjeti jer će browser već otici na novu adresu.

Ako želiš vizualni efekt, onda uzmi AJAX, pa kao uspješan response staviš to što imaš.

1 Like

Nema problema. Računaj ti sa time da ti ja ne želim dati code koji radi, nego te upravo želim navesti da sam shvatiš zašto ti gornji ne radi. Dugoročno ti jedino to vrijedi.
Tako da ću te natjerat na pučinu. :smiley:

Ok, sada vidim da sam sve dobro pretpostavio što griješiš. Mada si me iscimao u zadnjoj poruci kada si rekao:

…jer po tome napisanome ispada da ti znaš kada se upis() izvšava. A sada opet vidim da ne znaš…tj. očito onda ne znaš gdje se izvršava korak 3. i 4.

Pa ajmo redom. (Molim te stvarno ne preskači dati odgovore na pitanja…te ako neki odgovor ne znaš, napiši da ne znaš. :wink: )

Zaboravi sada na php…da vidimo di si sa HTML-om.
Što se sve može nalaziti u href attributu nekog anchor taga?
Da te ovaj dio ne čekam, ja ću ti odmah reći. Tamo se može nalaziti samo link ili ti poveznica! Da li si to znao?

Znači od linka možeš očekivati to da kada se klikne da aktivira neku poveznicu. Što će reći da taj klik aktivira server prema kojem je ta poveznica usmjerena. Link se klika na klijentovom računalu, dok je server udaljeno računalo koje je pozicionirano “negdje tamo”…
(Može link imati i onclick event …ali sada pričamo o ulozi href atributa)
Da li ti je jasan taj odnos servera i klijentovog računala na kojem se browser vrti?

Znači klikom na link, probudit ćemo neki server (na koji je taj link usmjeren) …te će server ovisno od linka znati i koju skriptu će unutar sebe aktivirati. Na serveru to može biti .php skripta, a može biti i neki drugi programski jezik. Browser to ne zna što je na serveru…on samo sluša odgovore koje mu server vraća nakon što se aktivira neki link. A ti odgovori su čisti text …u što spada i HTML. (HTML je text)

E sad, tvoj problem.
Ti si u link u href atribut stavio php funkciju upis() i očekuješ da će se nekom magijom ta funkcija izvršiti klikom na taj link.
Već sam rekao, takvim pristupom i izvršavaš tu funkciju, ali si vidim skroz nesvejestan kada i zašto je izvršavaš.
Treba ti razbiti par zabluda da dokučiš što se dešava. Pazi sljedeću php skriptu:

<?php

function upis(){
      
      return 1;
}

?>

<a href='<?php echo upis(); ?>' >link</a>

Pitanja:

  1. Kako će izgledati response takve skripte prema browseru? Probaj iz glave napisati taj HTML.
  2. U kojem momentu se funkcija upis() izvršava? Prije ili poslije nakon što do browsera stigne HTML koji će on prikazati?

@bozoou Pozabavim se ovim preko vikenda, pa se javim. Obećavam.