Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [Ajax][PHP][MySQL] Przesyłanie danych post i odbieranie statusu
Forum PHP.pl > Forum > XML, AJAX > AJAX
vodkon
Witam chciałbym stworzyć skrypt w ajax który po naciśnięciu przycisku zapisz wysyłał by dane drogą _POST["paset_tlo"] i w przypadku zmiany paset_tlo z porównaniem do rekordu w bazie danych i wysyłał info np. Dane zostały zapisane albo jak nie to Dane nie zostały zapisane. i do tego doszła by jeszcze funkcja zmiany hasła i jak zrobić taki kod który wyśle dane i wyświetli ich status np. jeśli coś jest w polu z hasłem np. Wprowadzone hasło jest niepoprawne żeby wysłał i odebrał stosowną informacje bez przeładowania strony. bardzo proszę o pomoc w stworzeniu tego.

kod...
<form method="post" name="opcje">Własne tło Adres URL<br><input size="45" type="text" name="paset_tlo" value="'.$tlore["tlo"].'" />'; ?>
<table><tr><td>Stare hasło </td><td><input size="30" type="password" name="pa_shaslo" /></td></tr>
<tr><td>Nowe hasło </td><td><input size="30" type="password" name="pa_nhaslo" /></td></tr>
<tr><td>Powtórz </td><td><input size="30" type="password" name="pa_phaslo" /></td></tr></table></form>

<div id="pa_opcjeb"><div id="pa_opcje_info">Tu ma być wyświetlona informacja o tym czy zaszły jakieś zmiany/błędy</div>
<div id="pa_tbutton2"><a href="java script:void(0)" onClick="opcje_zapisz()" id="pa_button5">Zapisz</a></div></div>

PHP KOD:
if(isset($_POST["paset_tlo"])){ if($_POST["paset_tlo"] == $tlore["tlo"]){ $info_setpa = "Niezaszły żadne zmiany"; }else{ mysql_query("UPDATE pa_admin SET tlo='$_POST[paset_tlo]' WHERE login='$login_payt'"); $info_setpa = "Dane zostały zapisane"; } }
zbychoCom
To proste.
Robisz najpierw skrypt php. Jak już zadziała poprawnie, to wtedy zamiast statycznej zmainy użyj ajaxa i ot cała filozofia
vodkon
ok, tylko ja pisze bo nie znam się na jquery oraz ajax i nie wiem jak to napisać coś takiego
ma wysyłać 4 post 1 z tłem i 3 z hasłami i dostarczać je do skryptu php który wykona operację i zwróci zmienną $info_setpa = "Dane został zapisane"; i dostarczyć ją do div#pa_opcje_info i zmienić jego dotychczasową treść na tą ze zmiennej po naciśnięciu przycisku zapisz, dodatkowo jak pola z hasłami będą puste miej niż 1 znak to skrypt poda zmienną "Dane nie zostały zapisane". nie wiem jak napisać taki skrypt ajax
zbychoCom
Podam Tobie linka do dobrego i szybkiego kursu jQery
Później poczytaj trochę o jSon (dżejsonie)... To powinno załatwić twoje problemy...
vodkon
A mam prośbę aby ktoś pokazał mi jak wysłać za pomocą json POST oraz odebrać zmienną php
zbychoCom
  1. function addEl($pdfId,$element){
  2.  
  3. $("#loader").ajaxStart(
  4. function(){
  5. $(this).css('display', 'block');
  6. }
  7. ).ajaxComplete(
  8. function(){
  9. $(this).css('display', 'none');
  10. }
  11. );
  12.  
  13. $.ajax({
  14. url:'/PDFSampler2_0/pdfsampler/createelement/id/' + $pdfId,//skrypt php przetwarzający dane
  15. type: 'POST',
  16. dataType: 'json',
  17. data: $('#propertiesForm').serialize()+'&new='+$element,//hurtowe pobieranie danych z formularza
  18. success: function(response){
  19. if(response.error == 'false'){//skrypt został prawidłowo przetworzony
  20. $('.area').append(response.area);//pierwszy div
  21. $('#elementSelector').append(response.selector);//drugi div
  22. $('#properties').append(response.properties); //itd
  23. }
  24. },
  25. error: function(data,e){
  26. alert('Wystąpił nieoczekiwany błąd! Sprawdź połączenie internetowe lub/i odświerz stronę!');
  27. }
  28. });
  29. return false;
  30. }


generowana odpowiedz (jSon) przez sktypt php wygląda tak:

Kod
{
    "area" : "<img id=\"loading\" src=\"loading.gif\" style=\"display:none;\">",
        "selector" : "costam",
        "properties" : "x=90",
        "error"   : "false"
}


Działa to tak, że wysyłasz dane do serwera i wykonuje się tam skrypt php. W odpowiedzi otrzymuje się jSon i robisz z nim co ci się podoba...
vodkon
Mam jeszcze pytanie odnośnie takiego kodu
  1. if(isset($_POST["paset_tlo"])){
  2. if($_POST["paset_tlo"] == $tlore["tlo"]){ //nic się nie dzieje zwraca Dane nie zostały zapisane
  3. }else{
  4. // Wykonuje skrypt i zwraca informacje typu Dane zostały zapisane
  5. mysql_query("UPDATE pa_admin SET tlo='$_POST[paset_tlo]' WHERE login='$login_payt'");
  6. }
  7. }

Jak w nim generować odpowiedzi json?
zbychoCom
To proste. Skrypt php powinien wygenerować jSon'a tak jak np. tutaj:

  1. <?php
  2.  
  3. $error = json_encode('false');
  4. $area = json_encode($this->pdfArea);
  5. $selector = json_encode($this->pdfSelector);
  6. $properties = json_encode($this->pdfProperties);
  7.  
  8.  
  9. //jSon
  10.  
  11. echo '{';
  12. echo '"area": '.$area.',';
  13. echo '"selector": '.$selector.',';
  14. echo '"properties": '.$properties.',';
  15. echo '"error" : '.$error;
  16. echo '}';



p.s. Jakbyś dostawał głupawki z jSon'em to zapamiętaj sobie, że ' != "
vodkon
THX za pomoc biggrin.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2024 Invision Power Services, Inc.