[ karas @ 26.10.2005. 10:03 ] @
Klikom na link kreće izvršavanje funkcije coverage() koja daje HTML stranicu sa listama gde će onChange u listama pozivati JavaScript funkciju myfunc():

Code:

<?php
function coverage()
{
  ?>
  <script type="text/javascript">
  function myfunc()
  {
    <?php
    global $pg;
    $pg->query("insert into mytab values ('hello world')");
    ?>
  }
  </script>
  <h2>Under constructing...</h2>
  <?php

// ...

}


Međutim, upis u bazu se desi odmah po učitavanju stranice tj. myfunc() je odmah pozvana. Zašto?
[ noviKorisnik @ 26.10.2005. 10:28 ] @
myfunc uopšte nije pozvana, a upis u bazu se odradi pre nego što se stranica učita, na serveru, pri pozivu coverage funkcije...

Razgraniči šta se gde odvija... prvo se stranica priprema na serveru i izvršava php kod koji priprema kod koji se šalje klijentu, pa tek onda sve to konačno pripremljeno stiže na klijent i prikazuje se i izvršava prema generisanom kodu.

Ako pogledaš generisani kod te stranice...
Code:
...
function myfunc()
{
}
...

Ako negde na klijentu i napraviš poziv funkcije myfunc, baš ništa se neće desiti jer je funkcija prazna.

Ako želiš da napraviš upis u bazu, moraš da pozoveš serversku skriptu koja to može da odradi.
[ karas @ 26.10.2005. 10:54 ] @
Hvala mnogo, razumeo sam.
Elem, stranica sadrži tabelu i svaki red između ostalog ima listu sa true/false vrednostima. Kada korisnik promeni vrednost u nekoj listi želim da onChange pozove JavaScript funkciju koja će tu promenu upisati u bazu. Je l' to znači da iz nje treba da pozovem server skriptu koja će da upiše u bazu? Prosleđujem parametre GET/POST metodom?
[ makaze @ 26.10.2005. 12:17 ] @
da, treba ti poziv ka PHP scripti da upiše u bazu
mali savjet - ako imaš samo true-false vrijednosti, možda je bolje da koristiš checkbox, nego listu... posmatraj uvijek malo iz korisničke perspektive ;)
[ noviKorisnik @ 26.10.2005. 12:46 ] @
Da ne bude zabune... poziv server skripte je po tradiciji zahtev za novom stranicom,... tako to funkcioniše - prosleđivanje formulara uglavnom, nema ni potrebe za javascriptom.

Ovo što nameravaš... da radi na onChange, sigurno ti ne odgovara da ti se otvara nova stranica na prvu izmenu u formularu. Postoji sada mogućnost, popularni AJAX, da stranica ostaje otvorena i da se u hodu radi sinhronizacija sa serverom. Bez toga postoji samo još par polurešenja...
[ karas @ 26.10.2005. 13:29 ] @
To sa checkbox-om možda i uradim, videću kako se operaterima više sviđa. Verovatno ću dodati button pa kad završe sa izmenama neka pošalju. Mada, obično se uradi jedna izmena u tabeli, pa su predložili rešenje sa onChange.
Sve je to već urađeno u PHP-u, samo dodajem par izmena u kodu, a ne bih da potrošim previše vremena.