Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> parseJSON
Hosiek
post
Post #1





Grupa: Zarejestrowani
Postów: 181
Pomógł: 0
Dołączył: 25.11.2010

Ostrzeżenie: (0%)
-----


Mam problem z funkcją parseJSON - w ajaxie mam zrobioną aktualizacje wiadomosci, po aktualizacji wysyla mi dane i poprzez parseJSON ma wyslac mi dwie informacje, informacja o poprawnosci oraz zaktualizowany tekst, i oczywiscie te dwie rzeczy maja byc w innym miejscu dlatego musze uzyc tej funkcji.

Kod mam "prawie" dzialający, gdzieś jest mały błąd, troche speram w tym kodzie i nie moge go wynalesc..

Jezeli mam tak to działa:
  1. <script type=\"text/javascript\">
  2. jQuery(document).ready(function(){
  3. jQuery(\".button_aktualizuj\").click(function(){
  4. jQuery.ajax({
  5. type:\"POST\",
  6. url:\"aktualizacja.php\",
  7. dataType: \"text\",
  8. data:\"dana=\"+jQuery(\".tekst_biografii\").val(),
  9. success: function(data){
  10. var obj = jQuery.parseJSON('{\"txt\":"tekst wiadomosci", "ajax_result":"1"}');
  11. if( obj.ajax_result === 1 )
  12. {
  13. jQuery('.wynik_aktualizacji_ajax_jquery').html(obj.txt);
  14. }
  15. else
  16. {
  17. jQuery('.wynik_aktualizacji').html(obj.txt);
  18. }
  19. },
  20. error: function(){
  21. alert('Blad z wysylaniem danych na serwer');
  22. }
  23. });
  24. });
  25. });
  26. </script>


Jednak w skrypcie powyzej podałem zmienna do parsowania a ma byc ona wyczytana z "data", czyli mniej wiecej tak:

  1. <script type=\"text/javascript\">
  2. jQuery(document).ready(function(){
  3. jQuery(\".button_aktualizuj\").click(function(){
  4. jQuery.ajax({
  5. type:\"POST\",
  6. url:\"aktualizacja.php\",
  7. dataType: \"text\",
  8. data:\"dana=\"+jQuery(\".tekst_biografii\").val(),
  9. success: function(data){
  10. var obj = jQuery.parseJSON('data');
  11. if( obj.ajax_result === 1 )
  12. {
  13. jQuery('.wynik_aktualizacji_ajax_jquery').html(obj.txt);
  14. }
  15. else
  16. {
  17. jQuery('.wynik_aktualizacji').html(obj.txt);
  18. }
  19. },
  20. error: function(){
  21. alert('Blad z wysylaniem danych na serwer');
  22. }
  23. });
  24. });
  25. });
  26. </script>


dane do "data" są pobierane na pewno gdyż moje je wyczytac funkcją jQuery('.wynik_aktualizacji').html(data); co daje mi taki text:
Cytat
{"ajax_result":0,"txt":"tekst"}
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Hosiek
post
Post #2





Grupa: Zarejestrowani
Postów: 181
Pomógł: 0
Dołączył: 25.11.2010

Ostrzeżenie: (0%)
-----


Cytat(Arcioch @ 2.10.2012, 19:11:50 ) *
Pokaż jak wysyłasz dane z php (IMG:style_emoticons/default/wink.gif) pewnie przez echo (IMG:style_emoticons/default/wink.gif) musisz wysłać używająć echo json_encode() (IMG:style_emoticons/default/smile.gif)



równiez mam, oto kod:

  1. $ostatnio_query5 = $db->simple_select("biografia", "OSTATNIO_MODYFIKOWANA", "POSTAC='{$nick_postaci}'");
  2. $ostatnio_query1 = $db->fetch_array($ostatnio_query5);
  3. $ostatnio_edytowany = $ostatnio_query1['OSTATNIO_MODYFIKOWANA'];
  4. $data_edycji = date('Y-m-d');
  5. $godzina_edycji = date("H:i:s");
  6. $modyfikowana = $data_edycji . " " . $godzina_edycji;
  7. $ostatnio_edytowany = explode(" ", $ostatnio_edytowany);
  8. $czas = new DateTime($ostatnio_edytowany[1]);
  9. $czas->modify('+30 second');
  10. if($czas->format('H:i:s') > $godzina_edycji)
  11. {
  12. $out['ajax_result'] = 0 ;
  13. $out['txt'] = "musisz odczekac 30 sekund przed ponowną aktualizacją textu" ;
  14. }
  15. else
  16. {
  17. $db->update_query("biografia", array('BIOGRAFIA' => $edytowana_biografia, 'OSTATNIO_MODYFIKOWANA' => $modyfikowana, 'MODYFIKACJA' => '1'), "POSTAC='{$nick_postaci}'");
  18. $query5 = $db->simple_select("biografia", "*", "POSTAC='{$nick_postaci}'");
  19. $biografia_pos = $db->fetch_array($query5);
  20. $zawartosc_biografi = $biografia_pos['BIOGRAFIA'];
  21. $out['ajax_result'] = 1 ;
  22. $out['txt'] = $zawartosc_biografi ;
  23.  
  24. }
  25. echo json_encode( $out ) ;


jak pisałem dane mi wysyłą dobrze gdyz moge je odczytac w skrypcie uzywając "data" bez uzycia json

Ten post edytował Hosiek 2.10.2012, 18:17:09
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 3.10.2025 - 21:37