Insert / Delete z DB bez refreshu stránky

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
Andurit
Člen | 131
+
0
-

Ahojte, z času na čas, potrebujem niečo insertnúť alebo deletnuť z DB bez refreshu stránky, aktuálne využívam niečo také:

<form name="form1" action="">
Enter Name <input type="text" name="t1" id="t1"></td> <br>
Enter City <input type="text" name="t2" id="t2"></td> <br>
<input type="button" name="button1" value="Insert to DB" onClick="aa()">
</form>
<div id="d1"></div>

<script type="text/javascript">
function aa()
{
	var xmlhttp = new XMLHttpRequest();
	xmlhttp.open("GET", "insert.php?name=" + document.getElementById("t1").value + "&city=" + document.getElementById("t2").value, false);
	xmlhttp.send(null);

	document.getElementById("d1").innerHTML=xmlhttp.responseText;;
}
</script>

V zásade čo to spravý je, že to zavolá nejaký iný .php file kde je už SQL command. Pracuje to dobre (tak ako to potrebujem), rozmýšlam ale ako by sa niečo podobné dalo spraviť v Nette, nakoľko s JQUERY či JS veľmi nepracujem budem vám veľmi vďačný za každý „example“ code.
Vie mi niekto so skúsenostami poradiť?

Vopred vďaka všetkým

Editoval Andurit (10. 2. 2015 16:20)

Marek Šneberger
Člen | 130
+
0
-

Ajax plus jQuery extenze. Pokud forum prohledáš pro „nette.ajax.js“, najdeš asi trilión způsobů, jak na to.

Andurit
Člen | 131
+
0
-

Ďakujem za koment, bohuźiaľ porteboval by som to asi skôr vidiet nejako realne kludne na nejakom simple example. Lebo mi to akosi nedochádza.

Marek Šneberger
Člen | 130
+
0
-

V pravo nahoře je vyhledávání :-) První odkaz při zadání „nette.ajax.js example“ míří sem

Andurit
Člen | 131
+
0
-

Nechcem vyznievať nevďačne, lebo každá rada daná niekym skúsenejším je cenná, hlavne ak je zadarmo.
Naozaj by som ale potreboval skôr nejakú ukážku konkrétne na podobnom prípade ako môj. Viem, že je to niečo navyše ale nevedel by si si na to nájsť čas?

vvoody
Člen | 910
+
0
-

Vieš, nette komunita odmieta vychovávať kopírovačov kódu. Nečakaj radu dokiaľ ľudia nevidia snahu z tvojej strany. Nevieš ako prejaviť snahu? Napríklad takto: „Na tomto linku som si našiel podobný problém, skúsil som jeho riešenie aplikovať na môj problém nasledovným spôsobom, ale skončilo to takouto chybou ktorej vôbec nechápem.“, dám ruku do ohňa za to, že po takejto otázke ta určite niekto rád usmerní v riešení tvojho problému.

TheNEoo
Člen | 75
+
0
-

Preklep :)

Editoval TheNEoo (11. 2. 2015 16:03)

TheNEoo
Člen | 75
+
+1
-

Ahoj,

  • Tam kam te odkazuje Marek Šneberger je to co potrebujes.
  • Fungovat to ma nasledovne (cca):
  • Je to z hlavy neručim za to, jiz jsem to dlouho nepouzival:)
  • A pocitam ze js mas nalinkovano a init zavolan
{snippet mujSnippet}
 {foreach $row as $item}
   ...
    <!-- volas handle predas id a dulezite je class="ajax" -->
    <a n:href="delete!, 'id'=>$item->id" class="ajax">Smazat</a>
   ...
 {/foreach}
{/snippet}
public function handleDelete($id){

       //nejaky ten pozadavek po DB update / insert / delete treba
       $this->db->delete($id)

       $this->flashMessage("Zaznam s '$id' byl odstranen");

       if($this->isAjax()){ // jde o ajax pozadavek?
          $this->redrawControl('mujSnippet'); // invalidujes dotycnej snippet

       }else{
          $this->redirect('this');
        }
}

Doufam ze nekecam a neradim blbost :)