Reload date din pagina cu Ajax

Discutii si intrebari legate de scripturi si functii JavaScript, jQuery si Ajax, cod JavaScript in general.
andras
Mesaje: 429

Reload date din pagina cu Ajax

Salut,
Am o pagina (fisier.php) pagina pe care o incarc cu o functie ajax(). Pe pagina am un buton care salveaza in baza de date. Dupa salvare cum apelez din nou aceeasi functie ajax pentru reimprospatarea datelor din pagina? Am renuntat la window.location sau header("Location:"). Multumesc.

andras
Cred ca am gasit: pun la butonul respectiv la onclick="apeleazaAjax();" iar in pagina pun in JS:

Cod: Selectaţi tot

<script type="text/javascript">
function apeleazaAjax(){
var form_data = {'name':'Nume', 'pass':'Parola'};
ajaxSend(form_data, 'ajaxtab1.php', 'post', function(resp){
  $('#idtab1').html(resp);
});
}
</script>
care trimite la functia ajaxSend() aflata in fisier.js si pe care am folosit-o si la incarcarea paginii. Aici parametri JSON sint doar demonstrativi.

Edit:
Tot n-am rezolvat problema: ar trebui sa trec dintr-o functie PHP (INSERT/ UPDATE in BD) intr-o functie ajax de reincarcare a paginii, functie care exista deja in fisier.js, ceea ce nu prea se poate. Cum se rezolva de obicei astfel de situatii?
Multumesc.

MarPlo
Salut
Daca vrei sa dai reload la pagina dupa executia functiei Ajax, cel mai simplu e sa aplici acest cod in functia pt callback:

Cod: Selectaţi tot

window.location.reload(true);

andras
Scuze, cred ca eu nu m-am exprimat clar: nu vreau sa folosesc window.location.reload(true), vreau ca dupa actionarea butonului Salvare sa nu se reincarce toata pagina, ci numai tabela html (continuta in pagina) sa se reimprospateze si sa contina si noua inregistrare salvata in BD. Pentru asta imi trebuie ajax, dar cum folosesc, unde plasez functia? Pot folosi direct ajax dupa INSERT (care e functie PHP)? Cred ca nu. Exista vreun artificiu? Multumesc.

MarPlo
Ideea ar fi asa:
1. In pagina se adauga tabelul html intr-un <div> cu un ID:

Cod: Selectaţi tot

<div id="table_1"><table>...</table></div>
2. Scriptul PHP care e apelat prin Ajax si salveaza datele in baza de date (ajaxtab1.php), sa returneze ca raspuns (cu "echo") tabelul html cu noile date.

Cod: Selectaţi tot

<?php
// primeste datele de la pagina
// prelucreaza si salveaza datele

$tab_html = '';  // va contine tabelul html cu noile date

// preia datele cu Select din baza de date si le adauga in $tab_html intr-un <table> html

echo $tab_html;  //returneaza tabelul la browser
3. Functia Ajax apelata cu butonul Salvare ar trebui sa primeasca de la PHP, ca raspuns, intreg tabelul html cu noile date pe care vrei sa-l actualizezi in pagina. Apoi va inlcui coninutul din <div> cu noul tabel.

Cod: Selectaţi tot

function apeleazaAjax(){
var form_data = {'name':'Nume', 'pass':'Parola'};
ajaxSend(form_data, 'ajaxtab1.php', 'post', function(resp){
  document.getElementById('table_1').innerHTML = resp;
});
}

Subiecte similare