Ładowanie pliku przez jquery

Witam,

Potrzebuje wrzucić w div’a kawałek kodu za pomocą js, robię to w ten sposób:

$.ajax({

   url: plik.php",

   success: function(results) {

       $('#pusch').html(results);

    }

});

a w pliku ‘plik.php’ mam:

<?php 

echo '

‘.jakasFunkcja1().’

naglowek

  • ‘.jakasFunkcja2().’

'; ?>[/code] i niby działa tylko nie wiem czemu w tym divie ‘pusch’ nie wrzuca mi div’ów tylko tak jakby tylko to co znajduje się z funkcjach - ‘jakasFunkcja1() i jakasFunkcja2()’ ? Próbowałem także rozbić to na dwa pliki php czyli w plikach php tylko wywołanie funkcji wstawiłem a w pliku js miałem tak:

[code] $.ajax({ url: plik1.php", success: function(results) { var a = results; } }); $.ajax({ url: plik2.php", success: function(results) { var b = results; } }); $(’#pusch’).html(’
‘+a+’

naglowek

  • ‘+b+’

');

ale to także nie zadziała bo zmienne a i b nie sa już widoczne poza funkcją $.ajax

Próbowałem także z funkcją jquery - load() ale także nie zadziałało. Macie jakiś inny pomysł jak to rozwiązać? Proszę o pomoc.

Nie zrozumiałam cię do końca,ale zobacz ten link,może ci pomoże http://api.jquery.com/jQuery.ajax/

to mi raczej nic nie dało. poprostu mam pewien kod (html+php) w pliku który muszę wrzucić za pomocą js do innego pliku w określonego div’a i próbowałem to sposobami podanymi w pierwszym poście ale się nie sprawdziły niestety.

o ile się nie mylę to append() za każdym razem dodaje ten tekst czyli działa podobnie jak ‘+=’ a mi nie o to chodzi. poprostu nie wiem czemu te div’y right_column i left_column są dodawane na końcu po wywołaniu funkcji php, czyli najpierw wywołuje się funkcja php ‘jakasFunkcja()’ a potem dopiero dodaje div left_column i right_column nie wiem czemu

też nie wiem gdzie tu jest problem dlaczego wrzuca div’a na koniec jakbym wiedział to bym tu nie pisał. moje funkcje zwracają zwykły tekst. a może ma wpływ to ze nie są zakończone ‘return’ tylko: echo ‘jakis tekst…’; ???

Wg mnie to wina twojego php. Wejdź w niego zamiast do tego z skryptem ajax i pokaż co ci wyświetla. Powinno być echo. Polecam również zapoznać się z zasadami korzystania z dużych liter, oraz przecinków :slight_smile:

W tym przypadku funkcje powinny się kończyć zwracając wartość używając return. Sprawdzone empirycznie.

Teraz spróbuje wyjaśnić dlaczego echo działa tak jak działa. (Ten zarys dowodu jest jedynie moim domysłem, nie znalazłem nic na potwierdzenie)

wywołujemy polecenie echo ‘tekst’.f1().‘tekst.‘f2()’.tekst’

Parser czytając ten fragment przechodzi do funkcji f1() i ją wykonuje. f1() nie zwraca nic tylko wypisuje echo ‘tekst f1’ - i to jest pierwszy tekst, który się pojawia. Następnie robi to dla funckji f2() i kiedy zna już całą metodę może wykonać echo.

Teraz drugi przypadek kiedy w funkcje zwracają wartość słowem kluczowym return. Parser czyta echo i widzi wywołanie f1. Wykonuje f1 i w miejscu wywołanie zapisuje to co zwraca return. następnie robi to dla f2 i znając już całą zmienną dla której ma zastosować echo może ją wypisać.