DevProTalk

DevProTalk (http://www.devprotalk.com/index.php)
-   (X)HTML, JavaScript, DHTML, XML, CSS (http://www.devprotalk.com/forumdisplay.php?f=8)
-   -   Izmjena podataka u bazi putem dinamicke forme - uz koristenje Ajax-a (http://www.devprotalk.com/showthread.php?t=597)

bokacbl 03. 02. 2006. 22:45

Izmjena podataka u bazi putem dinamicke forme - uz koristenje Ajax-a
 
Posto sam radio par aplikacija koje su administratorskom dijelu zahtijevale izmjenu pojedinih zapisa u tabeli, obicno sam to rjesavao:
- Procitam podatke iz tabele, unesem u <select> i postavim dugme izmjeni i ucitam sljedecu stranu na kojoj su u formu vec uneseni podaci iz tabele pa se upisu izmjene...(mozda i ovo nije dobar nacin ali ja nisam znao drugi).

E sad posto sam citao neki mali tutorial o Ajax-u i XMLHttpRequest
Guide to Using AJAX and XMLHttpRequest from WebPasties

rijesio sam da napravim neku vrstu dinamicke forme.. znaci ja u prvom polju u kojem su procitane vrijednosti iz tabele izaberem neki zapis, i automatski mi se u formi ispod ispisu vrijednosti tog zapisa..

Kôd:

<script language="javascript"  type="text/javascript">
var url = "getProgramData.php?param="; // The server-side script\

function handleHttpResponse() {
  if (http.readyState == 4) {
    // Split the comma delimited response into an array
    results = http.responseText.split("#");
    document.getElementById('name').value = results[0];
        document.getElementById('url').value = results[1];
        document.getElementById('description').value = results[2];
        document.getElementById('investment').value = results[3];
        document.getElementById('min').value = results[4];
        document.getElementById('max').value = results[5];
        document.getElementById('ratio').value = results[6];
        document.getElementById('referall').value = results[7];
        document.getElementById('support').value = results[8];
        document.getElementById('date_added').value = results[9];
  }
  }
function updateProgramData() {
  var idValue = document.getElementById("id").value;
  http.open("POST", url + escape(idValue), true);
  http.onreadystatechange = handleHttpResponse;
  http.send(null);
}

function getHTTPObject() {
  var xmlhttp;
  /*@cc_on
  @if (@_jscript_version >= 5)
    try {
      xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
    } catch (e) {
      try {
        xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
      } catch (E) {
        xmlhttp = false;
      }
    }
  @else
  xmlhttp = false;
  @end @*/
  if (!xmlhttp && typeof XMLHttpRequest != 'undefined') {
    try {
      xmlhttp = new XMLHttpRequest();
    } catch (e) {
      xmlhttp = false;
    }
  }
  return xmlhttp;
}
var http = getHTTPObject(); // We create the HTTP Object
</script>

to sam rijesio na gore pomenuti nacin uz koristenje
Kôd:

function getHTTPObject() , function handleHttpResponse() , function updateProgramData()
iz gore navedenog tutoriala..
Konkretno uz pomoc
Kôd:

var url = "getProgramData.php?param="
se poziva stranica koja sadrzi skript koji ispisuje podatke iz reda iz tabele razdvojene separatorom..

Da a samu promjenu u formi se radi u okviru select
Kôd:

<select name="id" id="id" onChange="updateProgramData();">
E sad interesuje me da li postoje jos neki nacin za rjesavanje ovih takozvanih dinamickih formi koje se koriste za mijenjanje podataka u bazi?
I takodje interesuje me postoji li neki drugi nacin da se rijesi citanje podataka iz baze, mislim da se ne poziva ovaj fajl "getProgramData.php" jer onda malo bolji programer moze da provali kako da procita podatke iz baze...

bluesman 03. 02. 2006. 22:50

Samo kratko (ne razumem najbolje problem): Pa šta ako pročita podatke iz baze? Zar nije to ono što i ti radiš? Ti prikazuješ te podatke, odnosno čitaš i prenosiš na stranu i prikazuješ svima :)

Problem je ako može da piše nešto što ti nisi planirao :)

bokacbl 03. 02. 2006. 22:55

Citat:

Originalno napisao bluesman
Samo kratko (ne razumem najbolje problem): Pa šta ako pročita podatke iz baze? Zar nije to ono što i ti radiš? Ti prikazuješ te podatke, odnosno čitaš i prenosiš na stranu i prikazuješ svima :)

Problem je ako može da piše nešto što ti nisi planirao :)

Pa u principu nije problem, ionako je ovaj dio skripte predvidjen za administratorski pristup.. ali recimo ako ocu da na ovaj nacin iskoristim izmjenu podataka o korisnicima...

I uopsteno da li je ovo kvalitetno rjesenje za ove zahtjeve??

Pedja 03. 02. 2006. 23:18

Ok je pristup, samo u getProgramData.php proveris odakle je pozvan i ako nije pozvan iz tvog dokumenta, odbijes zahtev.

ivanhoe 04. 02. 2006. 02:25

pretpostavljam da imas neku autentifikaciju sa sessionima, znaci samo iskoristi session_id da proveris da li je to ulogovan korisnik ili neko brlja nesto...


Vreme je GMT +2. Trenutno vreme je 11:26.

Powered by vBulletin® Verzija 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright © DevProTalk. All Rights Reserved.

Mišljenja, saveti, izjave, ponude ili druge informacije ili sadržaji nastali na Sajtu su vlasništvo onoga ko ih je kreirao, a ne DevProTalk.com, tako da ne morate da se oslanjate na njih.
Autori poruka su jedini odgovorni za ovakve sadržaje. DevProTalk.com ne garantuje tačnost, kompletnost ili upotrebnu vrednost informacija, stavova, saveta ili datih izjava. Ne postoje uslovi pod kojima bi mi bili odgovorni za štetu ili gubitak koji je posledica bilo čijeg oslanjanja na nepouzdane informacije, ili bilo kakve informacije nastale kroz komunikaciju između registrovanih članova.
Web sajt može sadržavati linkove na druge web sajtove na Internetu ili neke druge sadržaje. Ne kontrolišemo niti podržavamo te druge web sajtove, niti smo pregledali bilo kakve sadržaje na takvim sajtovima. Mi nećemo biti odgovorni za legalnost, tačnost ili prikladnost bilo kog sadržaja, oglasa, proizvoda, usluga ili informacije lociranim na ili distribuiranih kroz druge web sajtove, niti za bilo kakvu štetu nastalu kao posledica takvih informacija. DevProTalk.com drži i čuva druga prava vlasništva na web sajtu. Web sajt sadrže materijale zaštićene copyright-om, zaštitne znakove i druge informacije o pravu vlasništva ili softver. Članovi mogu poslatu informacije zaštićene pravima vlasništva njihovih nosilaca i ona ostaju zaštićena bez obzira da li su oni koji prenose te informacije to naveli ili ne. Osim informacija koje su u javnom vlasništvu ili za koje dobijete dozvolu, nemate pravo da kopirate, modifikujete ili na bilo koji način menjate, objavljujete, prenosite, distribuirate, izvršavate, prikazujete ili prodajte bilo koju informaciju zaštićenu pravima vlasništva. Slanjem informacija ili sadržaja na bilo koji deo DevProTalk.com, Vi automatski dozvoljavate i predstavljate garanciju da imate pravo da dozvolite DevProTalk.com ili članovima DevProTalk.com bespovratnu, kontinualnu, neograničenu, globalnu dozvolu da koriste, kopiraju, izvršavaju, prikazuju i distribuiraju takve informacije i sadržaje i da iz takvih sadžaja koriste bilo koji deo u bilo koje svrhe, kao i pravo i dozvolu da koriste gore navedene sadržaje. Svi zaštitni znakovi (trademarks), logotipi, oznake usluga, firme ili imena proizvoda koji se pominju na ovom web sajtu su vlasništvo kojim raspolažu njihovi vlasnici.