Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Odświeżanie div zamiast iframe
Malinaa
post
Post #1





Grupa: Zarejestrowani
Postów: 577
Pomógł: 6
Dołączył: 21.07.2008

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


Witam,
sie macie (IMG:style_emoticons/default/winksmiley.jpg)

Chciałbym rozwiązać taki problem:

mam na stronie iframe w którym jest sonda i wszystko byłoby ok, tylko no właśnie sonada jest w iframe.

Jak zrobić div'a, który będzie działał jak iframe, będzie się odświeżał bez przeładowania całej strony (po kliknięciu submit).

IFRAME: <iframe src="elementy/sonda/sonda.php" width="170" height="200" scrolling="no" frameborder="0"></iframe>

DIV: <div id="div_iframe"><div> (IMG:style_emoticons/default/questionmark.gif) ?

Gdyby nie możliwość głosowania odświeżane div (iframe) nie byłoby potrzebne, wystarczyłoby tylko include("elementy/sonda/sonda.php");
wewnątrz div'a, ale można, ba nawet trzeba głosować i dlatego musi być odświeżany div (iframe działa, ale nie spełnia oczekiwań).

Kłopotliwe szczegóły na które trzeba zwrócić uwagę:

w pliku sonda.php znajduję się przycisk formularza <input type="submit"> i właśnie w tym cały problem, aby po wybraniu opcji głosowania w sondzie i kliknięciu input SUBMIT (Głosuj) przeładował się tylko sam DIV, w którym powinna być sonda, a nie cała strona.

Jak to zrobić, bardzo proszę o pomoc.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Malinaa
post
Post #2





Grupa: Zarejestrowani
Postów: 577
Pomógł: 6
Dołączył: 21.07.2008

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


Na ten czas, jest tak

  1. <script type="text/javascript">
  2. function odswiez() {
  3. $.ajax ({
  4. type: "POST",
  5. url: "elementy/sonda/sonda.php",
  6. success: function(data) {
  7. $("#idSonda").html(data);
  8. }
  9. });
  10.  
  11. //$("#idSonda").load("elementy/sonda/sonda.php");
  12.  
  13. document.formSonda.submit(); // Co Tutaj (IMG:style_emoticons/default/questionmark.gif)
  14. }
  15.  
  16. <div id="idSonda"></div>
  17. $("#idSonda").load("elementy/sonda/sonda.php");


W pliku sonda.php umieściłem input type button zamiast submit. Czy o tym pisałeś, aby zmienić?

sonda.php
<form action="$_SERVER['PHP_SELF']" method="post" name="formSonda">
<input type="button" value="Odśwież" onclick="odswiez()">
</form>

Uwagi: Ścieżka do pliku: elementy/sonda/sonda.php . Sonda wyświetlana jest na stronie index.php .

Problem: co dodać w funkcji odswiez() lub gdzie indziej, aby po kliknięciu button Odśwież, który jest w pliku sonda.php wyświetlanym w divie na stronie index.php prezkazywane były niezbędne zmienne dla sondy.

W funkcji dodałem: document.formSonda.submit(); ale po kliknięciu zamiast być na stronie index.php wędruję do boxa sonda.php
jeżeli natomiast w formularzu dam w action index.php nie zlicza głosów w box'ie sondy.

Inna rzecz. Myślałem, że ten kod w ogóle nie działa, ponieważ testowałem w Internet Explorer, ale spróbowałem w FireFoxie i tutaj działa.
Czy ten kod jest uniwersalny i może działać na Internet Explorer również, ponieważ u mnie na tej przeglądarce nie działa prawidłowo, coś fiksuje i po sondzie echo?

--
Uruchomiłem skrypt dzisiaj i sonda pokazała się również w Internet Explorer, gdzie wczoraj było echo czyli nic w divie.
Wygląda tutaj że w IE też działa tylko IE zapamiętuje pierwszą zawartość diva i nie wyświetla zmieniających się losowo sond w sondażach.

Mam już prawie gotowe sondaże, skrypt sonda.php generuje losowo jedną z sond i potrzebuję Waszej pomocy, aby ukończyć sondę w divie.
W divie wyświetlana powinna być losowa sonda i FireFox działa bez kłopotu, ale w IE jest widoczna cały czas jedna pierwsza sonda?

Pojawił się kłopot z polskimi znakami w divie obsługiwanym przez powyższy kod.
Można temu jakoś zaradzić?

I wspomniany button Głosuj (na obrazku) co zrobić, aby zliczane były głosy i aby działał w divie ?
Button jest w formularzu sondy - plik sonda.php, a plik sonda.php wyświetlany jest w divie na stronie index.php .


--
Zrobiłem sondę na gotowe, działa jak trzeba div zamiast iframe.
Po prostu extra, jestem niemożliwy, dzięki chomiczek (IMG:style_emoticons/default/smile.gif)

Zlicza głosy, bez kłopotu, zabezpieczenie przed nabijeniem glosów też działa i polskie znaki są.
Zastanawiam się jeszcze nad przeglądarką IE, dlaczego nie pokazuje losowych sond tylko jedną sondę, kiedy inne przeglądarki nie mają oporów?

Dla tych, którzy szukają rozwiązanie jest tutaj:

  1. <script type='text/javascript'>
  2. function odswiez() {
  3. var sonda = document.formSonda.form_kid.value;
  4. var glos = 0;
  5.  
  6. for (i=0; i < document.formSonda.glos.length; i++) {
  7. if ( document.formSonda.glos[i].checked == true )
  8. glos = document.formSonda.glos[i].value;
  9. }
  10.  
  11. //if (sonda != '') alert('Sonda, ' + sonda + '!');
  12. //if (glos != '') alert('Głos, ' + glos + '!');
  13.  
  14. $.ajax ({
  15. type: 'POST',
  16. url: 'sonda.php?form_kid='+sonda+'&glos='+glos,
  17. success: function(data) {
  18. $('#idSonda').html(data);
  19. }
  20. });
  21.  
  22. // $('#idSonda').load('sonda.php');
  23. }
  24. </script>


Kind Regards

Ten post edytował Malinaa 7.08.2010, 13:02:06
Go to the top of the page
+Quote Post

Posty w temacie


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: 10.10.2025 - 20:12