Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [HTML][PHP] Dynamiczne dodawanie pól formularza
Forum PHP.pl > Forum > Przedszkole
hyhyhy
Witam,

Pracuję nad generatorem quizów na swojej stronie. Napotkałem problem na który nawet nie mam pomysłu jak ugryźć.
Otóż u mnie działa tak, że user (tworząc quiz) podaje ile chce pytan i odp do kazdego, np poda 5 pytan po 4 odpowiedzi, klika dalej i przekierowuję go na stronę, gdzie skrypt wywala w pętli pytania i odpowiedzi, no ale w sytuacji gdy user stwierdzi, ze chce jedno mniej albo wiecej to ma problem, bo musialby sie wracac i stracic dane które już wpisał.

I pytanie: czy php posiada funkcje, którymi dałoby się to zrobić? A jeśli nie, to czy ktoś mógłby jakoś pomóc ?(zaznaczam, że w javie potrafie zrobic tylko pop upa smile.gif )
lukaskolista
Cytat
zaznaczam, że w javie potrafie zrobic tylko pop upa
a nie w JavaScript?

Nie ma funkcji do tego, php nie jest jezykiem to obslugi quizow, tylko serwera. Musisz napisac to sam. Skoro nie znasz JS to bedzie ciezko, bo tu sa potrzebne chocby podstawy. Najprosciech chyba bedzie:
1. Podczas wystwietlania quizu tworz tez ukryty formularz (kopia tego, na ktorym uzytkownik stworzyl quiz)
2. Pod guzikiem po wygenerowaniu quizu po guzikiem "edytuj" zrob funkcje pokazujaca ten formularz (operuj na stylach, np. display none)
3. Potrzebujesz funkcji do dodawania lub usuwania elementow formularza (operacje na DOM)
Fifi209
@autor
Nie słuchaj Pana nade mną, zrób sobie w pełni dynamicznie tworzony formularz w javascript z pomocą jQuery szybko złapiesz o co chodzi. Dynamiczny formularz można rozbudować o opcję np. zmiany kolejności pytań ;]
hyhyhy
Znalazłem na tym forum jakiś skrypt, który ktoś wrzucał. Oczywiście postępowałem na wyczucie, ale myślę, że mógłbym go dostosować do siebie, ale problem mam taki, że "dodaj" wysyla wynik zamiast dodac nowe pole, nie mam pojecia czemu. Moglby mi ktos doradzic? Chyba że to są totalne głupoty...

  1. <script type='text/javascript' src='jQuery.js'>
  2. var x = 0;
  3. $('#add').click(function(){
  4. var newRow = $('#elements .element:first').clone();
  5.  
  6. newRow.find('input[name="name[0]"]').attr('id', 'name['+x+']');
  7. newRow.find('input[id="name['+x+']"]').attr('name', 'name['+(x)+']');
  8.  
  9. newRow.find('input').val('');
  10.  
  11. newRow.appendTo($('#elements'));
  12. return false;
  13. });
  14.  
  15. </head>


  1. <form enctype="multipart/form-data" action="dodaj.php" method="post" >
  2. <tr>
  3. <td>Lp</td>
  4. <td>Nazwa</td>
  5. <td>Imie</td>
  6. <td>select</td>
  7. </tr>
  8. </thead>
  9. <tbody id="elements">
  10. <tr class="element">
  11. <td>1</td>
  12. <td><input type="text" name="nazwa[x]" value="" id="nazwa[x]" /></td>
  13. <td><input type="text" name="imie[x]" value="" id="imie[x]" /></td>
  14. <td>
  15. <option value="1">Pozycja 1</option>
  16. <option value="2">Pozycja 2</option>
  17. </select>
  18. </td>
  19. </tr>
  20. </tbody>
  21. <button id="add">Dodaj</button>
  22. <br>
  23. <input type="hidden" name="MAX_FILE_SIZE" value="256000" />
  24. <input type="file" name="obrazek" />Obrazek - max 200kB.<br /><br /><br /><center>
  25. <br>
  26. <button id="submit">Wyślij</button>
  27. </form>'
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.