Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Przeladowanie pliku html? A moze pobranie zmiennych?, jquery $.ajax
Stiffler
post
Post #1





Grupa: Zarejestrowani
Postów: 28
Pomógł: 0
Dołączył: 5.04.2014

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


Witam,
Problem jest złożony... przynajmniej dla mnie.
http://brain-line.pl/sloma1/boxallegro/ <= Mam takiego boxa.
Cel: losowanie innych aukcji po jego schowaniu, teraz losują się po odświeżeniu strony.

1. Najpierw klasa php a pozniej jej wywołanie generuje ok 10 zmiennych dla 2 aukcji czyli po 5 dla aukcji, poprzez wywołanie jednej metody na obiekcie klasy. Przechwouja one nazwe link, czas do konca cene itp.
2. Poprzez require includuje plik php z klasa i wygenerowanymi zmiennymi, oraz wrzucam je pomiędzy kod html <?php echo dupa;?>.
3. Podpiety plik z jquery steruje boxem.

Wymyśliłem to tak. Po schowaniu boxa czyli success animation, jquery wysle zmienna POST. Skrypt sprawdzi if_exist($_POST['dupa']; ponownie odpali tą metode i wygeneruje nowe zmienne.

I tutaj się zatrzymałem. bo nie wiem jak pobrać z pliku php do jquery te 10 zmiennych.

Myślałem żeby to ominąć i po wygenerowaniu nowych zmiennych, stworzyłbym nową metoda która wygeneruje czysty plik html i spobie go pozniej załaduje poprzez $.load();
ale wydaje mi się że to troche "dirty way". Czy to jest jedyny sposob? Czy moze jest jakas opcja pobrać tylko te zmienne?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 13)
aras785
post
Post #2





Grupa: Zarejestrowani
Postów: 859
Pomógł: 177
Dołączył: 29.10.2009

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


  1. <?php
  2. if(isset($_POST['dupa'] AND $_POST['dupa']==1)) {
  3. //losu j i wywal tablice
  4. $array = array(array('title'=>'Nazwa','link'=>'http://link.com'),array('title'=>'Nazwa','link'=>'http://link.com'),);
  5. return json_encode($array);
  6. }
  7. ?>


i teraz w jquery:

  1. $.post( "losuj.php", { dupa: "1"}).done(function( result ) {
  2. //petla
  3. $.each(result, function(i, item) {
  4. alert(item.title);
  5. });
  6. },"json");


Zamiast alert podmień sobie obecny content na nowy. Pozdrawiam
Go to the top of the page
+Quote Post
Stiffler
post
Post #3





Grupa: Zarejestrowani
Postów: 28
Pomógł: 0
Dołączył: 5.04.2014

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


Czytam czytam i nie kumam.
Nie widze nigdzie w ajaxie niczego pod tytulem "Pobierz mi tą zmienna". Wiem jak pobrac caly dokument. Mozna by prosic przykladowe wywołanie metody żeby z pliku xxx.php pobrał zmienną $dupa = 10;
Go to the top of the page
+Quote Post
adrianpl20
post
Post #4





Grupa: Zarejestrowani
Postów: 111
Pomógł: 16
Dołączył: 20.02.2014

Ostrzeżenie: (10%)
X----


co do ajaxa

wysyłajac dane, ustawiasz dataType np. na 'json, i w tym pliku Twoim na końcu (po wszelkich operacjach) wyświetlasz je php'em: echo json_encode($tablica);

można odebrać je tak:
Kod
$.ajax({
type: 'POST',
url: 'plik.php',
dataType: 'json',
data: {
zmienna1: wartosc,
zmienna2: wartosc2
},
success: function(json)
{
alert('zwrocone dane:' + json['cos1'] + ', ' + json['lalala']); // indeksy tablicy z plik.php
},
complete: function(json)
{
},
error: function(json)
{

}
});


Ten post edytował adrianpl20 3.07.2014, 11:11:56
Go to the top of the page
+Quote Post
aras785
post
Post #5





Grupa: Zarejestrowani
Postów: 859
Pomógł: 177
Dołączył: 29.10.2009

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


Możesz też bardzo prosto:

  1. //po success animation
  2. $('#field').load('kod.php');


I w pliku kod.php generujesz losowo content i on wpada do bloku #field wink.gif

Go to the top of the page
+Quote Post
Stiffler
post
Post #6





Grupa: Zarejestrowani
Postów: 28
Pomógł: 0
Dołączył: 5.04.2014

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


Co jeżeli plik.php zawierałby też conent php? Czy to musi być czysty html? Bo jak nie to jedyne wyjście jakie widze to zbudować string i wrzucić go przez file_put_contents();
Jestem początkujący.
Pozdrawiam

ps. I co że przy load uruchamiany jest serwer php?

Ten post edytował Stiffler 3.07.2014, 13:23:07
Go to the top of the page
+Quote Post
Turson
post
Post #7





Grupa: Zarejestrowani
Postów: 4 291
Pomógł: 829
Dołączył: 14.02.2009
Skąd: łódź

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


Wg. przykładu aras 785, w pliku kod.php generujesz content i go zwracasz, a on automatycznie ładowany jest do elementu html na stronie.
Plik może zawierać PHP.

Ten post edytował Turson 3.07.2014, 13:25:15
Go to the top of the page
+Quote Post
Pyton_000
post
Post #8





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

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


A jak odpalis plik dupa.php to dostajesz PHP czy HTML ?
Go to the top of the page
+Quote Post
Stiffler
post
Post #9





Grupa: Zarejestrowani
Postów: 28
Pomógł: 0
Dołączył: 5.04.2014

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


Dziala ! Dostaje html. Jest pieknie. Aczkolwiek funkcja $.load nie ma jednego waznego parametru. beforeComplete. chcialbym sobie wstawic progress bar. Czy da sie jej uzywac wewnatrz funkcji $.ajax?
Go to the top of the page
+Quote Post
Turson
post
Post #10





Grupa: Zarejestrowani
Postów: 4 291
Pomógł: 829
Dołączył: 14.02.2009
Skąd: łódź

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


W $.ajax masz beforeSend
Go to the top of the page
+Quote Post
Stiffler
post
Post #11





Grupa: Zarejestrowani
Postów: 28
Pomógł: 0
Dołączył: 5.04.2014

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


Tylko ze w ajaxie, musze podac url, datatype itp. A ja chce tylko $.load i cos innego before complete. Probowalem se jako to poukładać zgodnie z dokumentacją, ale mi sie ot nie dodaje.
Go to the top of the page
+Quote Post
Turson
post
Post #12





Grupa: Zarejestrowani
Postów: 4 291
Pomógł: 829
Dołączył: 14.02.2009
Skąd: łódź

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


Wystarczy sam url i funkcje np. beforeSend czy success
Sprawdź:
http://stackoverflow.com/questions/2061814...oad-before-send

Ten post edytował Turson 3.07.2014, 18:33:18
Go to the top of the page
+Quote Post
Stiffler
post
Post #13





Grupa: Zarejestrowani
Postów: 28
Pomógł: 0
Dołączył: 5.04.2014

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


Zrobilem tak ale niestety nie dokonca dziala to tak jak trzeba. Nie ma plynnosci. Rozbilem to na beforesend success i complete ale teraz $("#field").show(); nie zmienia wlasciwosci diva z display: none na display: block.
Mozecie zerknac?

  1. $.ajax({
  2. url: "box.php",
  3. beforeSend: function(){$("#loading").show();},
  4. success: function(){$("#field2").load("box.php");},
  5. complete: function(){
  6. $("#loading").hide();
  7. $("#field").show(300);
  8. }
  9. });


http://brain-line.pl/sloma1/boxallegro/ <= Link do skryptu
Go to the top of the page
+Quote Post
Turson
post
Post #14





Grupa: Zarejestrowani
Postów: 4 291
Pomógł: 829
Dołączył: 14.02.2009
Skąd: łódź

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


Co mówi konsola i zakładka Network/Sieć - żadanie ajaxa questionmark.gif
Hmm poza tym nigdy nie spotkałem się z complete, może chodziło o .done?

Poza tym jak już korzystasz z $.ajax zamiast load(), to
Kod
success: function(msg){
$("#field2").html(msg);
},


Ten post edytował Turson 4.07.2014, 10:47:53
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 19.08.2025 - 06:52