Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [jQuery] serialize danych modyfikowanych przez jQuery
szczurek
post
Post #1





Grupa: Zarejestrowani
Postów: 59
Pomógł: 0
Dołączył: 1.10.2006
Skąd: Bydgoszcz

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


Witam,
mam formularz który jest ładowany na stronę częściowo. A dokładniej to pojawia się na niej po kawałku.

Użytkownik wypełnia 3 pola kilka zapisz. Wtedy uruchamiana jest funkcja która serializuje dane SendData = $('form').serialize(); i za pomocą $.post(); wysyła je na serwer.

Tam są przetwarzane. Do bazy danych zapisywany jest rekord i zwracany jego identyfikator.

Wtedy za pomocą $.('element').val(); ustawiana jest wartość pola.

Skrypt pokazuje użytkownikowi kolejne pola do wypełnienia a wypełnione już blokuje.

Po uzupełnieniu kolejnych pól formularza uruchamiana jest funkcja jQuery, która ponownie ma wykonać

$('form').serialize i wysłać je na serwer. Problem polega na tym, że wtedy już zostają wysłane tylko dane wypełnione ręcznie przez użytkownika. Nie wysyła w ogóle ani danych wpisanych poprzednio z pól wyłączonych. Ani danych z pól ukrytych, których wartości modyfikowane zostały za pomocą $.('element').val();

A patrząc w firebugu te wartości są zmodyfikowane w przeglądarce. Jednak w tablicy $_POST po stronie serwera widać już tylko te wpisane ręcznie przez użytkownika.

Nie wiem czy to bug jQuery czy ja się zabieram za to od złej strony.
Ma ktoś pomysł jak to rozwiązać?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
szczurek
post
Post #2





Grupa: Zarejestrowani
Postów: 59
Pomógł: 0
Dołączył: 1.10.2006
Skąd: Bydgoszcz

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


Tak jestem pewien, że ukryte jest w obrębie formularza. Właściwie nie wysyłanie wyłączonych pól nie będzie tu stanowić problemu jeśli pójdą ukryte.

Z tym ukrytym upatrywałbym problemu z serializacją w tym, że jego wartość przy załadowaniu strony jest pusta a wypełniam ją za pomocą jQuery po wykonaniu pierwszego zapytania.

Poniżej kod formularza skopiowany z firebuga już po odpaleniu tej pierwszej akcji czyli wypełnieniu idAnkiety

  1. <form accept-charset="utf-8" method="post" action="akcja">
  2. <div id="ankieta">
  3. <p>
  4. <input type="hidden" value="41" name="idAnkiety" id="idAnkiety"><label for="AnkietaNazwa">Nazwa ankiety </label><input type="text" value="" name="AnkietaNazwa" id="AnkietaNazwa" disabled=""> </p>
  5. <p>
  6. <label for="AnkietaStart">Data rozpoczęcia ankiety </label><input type="text" class="hasDatepick" value="" name="AnkietaStart" id="AnkietaStart" disabled=""> </p>
  7. <p>
  8. <label for="AnkietaKoniec">Data zakończenia ankiety </label><input type="text" value="" name="AnkietaKoniec" id="AnkietaKoniec" disabled=""> </p>
  9. <p><a onclick="savepoll();" href="#">Zapisz</a></p>
  10. <div class="czesc-ankiety" style="display: block;">
  11. <h2>Część ankiety</h2>
  12. <p><input type="hidden" value="" name="idCzesci" id="idCzesci"><label for="CzesciNazwa">Nazwa części ankiety </label><input type="text" onblur="savePart();" value="" name="CzescNazwa" id="CzescNazwa"></p>
  13.  
  14. <div class="pytanie">
  15. <p><label for="Pytanie">Wybierz pytanie </label><select name="PytanieSelect[]"></select> lub</p>
  16. <p><input type="hidden" value="" name="idPytania"><label for="Pytanie">Dodaj nowe pytanie: </label><input type="text" name="Pytanie[]"></p>
  17. </div>
  18.  
  19. </div>
  20. <p><input type="submit" value="Zakończ ankietę" name="zamknijankiete"></p>
  21. </div>
  22. </form>
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: 14.10.2025 - 10:42