Autor Zpráva
moskyt
Profil
Zdravím,

Chtěl bych aby se při výběru checkboxu provedl určitý php script. A následně, pokud checkbox zase odškrtnu aby se opět provedla určitá akce (bez nutnosti odesílat ten checkbox tlačítkem).

Je možné něco takové provést?

Předem díky za případnou radu.
quatzael
Profil
Musíš použít AJAX..
jrm
Profil
Např.:
<input type="checkbox" name="pack" value="1" <?php if ($pack>0) echo "checked"; ?> onchange="submit();">
A na téže stránce vypodmínkuji potřebné akce.
Možná ti to bude stačit...
aDAm
Profil
reaguji na jrma
takto by se mu ten form odeslal ne?

reaguji na moskyta
na ty checkboxy navěsíš události kde při onchange dojde k odeslání na pozadí pomocí ajaxu. Samotné řešení záleží na tom co tam máš za knihovny, pokud máš k dispozici jquery tak je to na pár řádků.
moskyt
Profil
aDAm: jquery si asi mohu nahrat, mohl by jsi my tech par radku napsat?
Tori
Profil
moskyt:
aby se při výběru checkboxu provedl určitý php script
Potřebujete od toho PHP skriptu získat nějaká data do stránky, anebo jde jen o to, aby se spustil?
aDAm
Profil
cca takto:

$("input[type=checkbox]").bind('change', function(e){
  e.preventDefault();
  
  $.ajax({
    url: "test.html",
    data: {
      ...DATA CO SE MAJI POSLAT
    }
  }).done(function() {
      ... TREBA NEJAKA AKCE PO DOKONCENI
  });
});

url si musíš nastavit a pak záleží na tom co vše chceš poslat na ten server. či jen ten konkrétní checkbox či celý form atd.
moskyt
Profil
No konkrétně mám na stránce x řádků a v každém řádku jméno zákazníka + checkbox. Když checkbox zaškrtnu potřebuji aby se provedl kousek php scriptu , který se připojí do db a změní hodnotu v jedné tabulce na ANO a když jej odškrtnu tak ji změní na NE
Chamurappi
Profil
Reaguji na moskyta:
Řešení od aDAma nedoporučuji. Na AJAX žádný Framework nepotřebuješ.
K obyčejnému poslání informace nepotřebuješ ani AJAX.


Reaguji na aDAma:
pokud máš k dispozici jquery tak je to na pár řádků
Zatímco bez frameworku by to také bylo na pár řádků.

e.preventDefault();
Tím zabráníš zaškrtnutí, 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:

0