Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Przesyłanie formularza przez advAjax
Forum PHP.pl > Forum > XML, AJAX > AJAX
mr_Zola
Witam,
teraz kod:

index.php
  1. <script type="text/javascript" src="script.js"></script>
  2. <script type="text/javascript" src="advajax.js"></script>
  3.  
  4. <form action="a.php" method="post" id="submit_zamowienie" >
  5. <input type="radio" name="typ_0" value="profesionalne"/>
  6. <b>Profesionalne</b>
  7. <input type="radio" name="typ_0" value="szkolne"/>
  8. <b>Szkolne</b>
  9. <br />
  10. <input type="text" value ="0" size="4" name="ilosc_0">
  11. <select id="dod_0" name="dod_1" size="1" >
  12. <option> Żółty
  13. <option> Granatowy
  14. <option> Zielony
  15. </select>
  16. <input value ="Dalej" type="submit" onclick="wysylanie();">
  17. </form>
  18.  
  19. <div id="zamowienie"></div>


script.js
  1. function wysylanie()
  2. {
  3. advAJAX.assign($("submit_zamowienie"), {
  4. onInitialization : function(obj) { $("zamowienie").innerHTML = "Przygotowanie..."; },
  5. onSuccess : function(obj) { $("zamowienie").innerHTML = obj.responseText; },
  6. onError : function(obj) { alert("Błąd...: " + obj.status); }
  7. });
  8. advAJAX.get({ url: "a.php", tag: "zamowienie" });
  9. };


a.php
  1. <?php
  2. print_r($_POST);
  3. ?>


I pytanie dlaczego w Fx po wysłaniu formularza w div'a wpisywana jest całkowicie wypełniona tablica $_POST czyli: Array ( [ilosc_0] => 0 [dod_1] => Żółty )
a w IE niepełna: Array ( [ilosc_0] => 0 [dod_1] => )
shpyo
chyba nie zamknąłeś tagu <option>
Kod
<select id="dod_0" name="dod_1" size="1" >
<option value="zolty"> Żółty</option>
<option value="granatowy"> Granatowy</option>
<option value="zielony"> Zielony</option>
</select>
mr_Zola
Cytat(shpyo @ 12.01.2007, 11:47:14 ) *
chyba nie zamknąłeś tagu <option>

Fakt nie zamknąłem ale to i tak nic nie zmieniło.
Zapomniałem dodać iż jak przesyłam ten formularz bez advajax to przesyła wszystko ok w IE.

Naprawdę nikt nie zna odpowiedzi na pytanie?
ShaXbee
1. Funkcja wysylanie(), jedynie podpina event handler - musisz ja wywołać pod formularzem, inaczej onSubmit pozostanie nieobsłużony.
2. script.js jest zadeklarowany przed advajax.js wiec nie ma dostepu do deklaracji AdvAjax.js - kod bedzie dzialac i tak, ponieważ AdvAjax jest 'pobierany' dopiero w momencie wywolania funkcji wysylanie(), ale mimo wszystko sugeruję deklaracje zamienić.
3. Zainstaluj sobie Firebug i zobacz czy jakieś błędy w Twoim skrypcie nie wylatują.
mr_Zola
Cytat(ShaXbee @ 25.01.2007, 09:49:34 ) *
1. Funkcja wysylanie(), jedynie podpina event handler - musisz ja wywołać pod formularzem, inaczej onSubmit pozostanie nieobsłużony.

co rozumiesz przez "musisz ją wywołać pod formularzem"]
Cytat
2. script.js jest zadeklarowany przed advajax.js wiec nie ma dostepu do deklaracji AdvAjax.js - kod bedzie dzialac i tak, ponieważ AdvAjax jest 'pobierany' dopiero w momencie wywolania funkcji wysylanie(), ale mimo wszystko sugeruję deklaracje zamienić.

zmieniłem
Cytat
3. Zainstaluj sobie Firebug i zobacz czy jakieś błędy w Twoim skrypcie nie wylatują.

Zainstalowałem i jest ok
ShaXbee
To znaczy po tagu </form> lub w body onload wywoływać.
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-2025 Invision Power Services, Inc.