Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [AJAX + PHP + MYSQL] Dynamiczny formularz.
Forum PHP.pl > Forum > XML, AJAX > AJAX
Riggs
Witam!
Problem pewnie stary jak technologia AJAX ale nigdzie w sieci nie mogę znaleźć rozwiązania. Otóż w kodzie PHP tworzę sobie formularz (wyświetlany funkcją echo()). Ma pola typu input, select, checkbox (to ostatnie ma się generować dynamicznie). Stworzenie formularza w PHP który z bazy danych pobierze sobie dane i "przerobi" je na checkbox-y nie stanowi dla mnie żadnego problemu. Problem jest z dynamicznym formularzem. Przedstawię szybko zasadę jego działania:
1. użytkownik wypisuje sobie inputy itd...
2. z pola SELECT wybiera jedna z wartości (do tego pola opcje OPTION zostały wcześniej wczytane z bazy danych i jako value przechowuję ich ID w bazie).
3. Po zmianie wyboru w SELECT mają generować się checkbox-y w zależności od tego jaka wartość została wybrana w SELECT (tu musiałoby być kolejne zapytanie do bazy).

Rozumiem że punkty 2 i 3 muszą być zrobione w AJAX. Na sieci znalazłem przykład ale z wartościami wpisanymi na sztywno. Jakby ktoś mógł wrzucić taki skrypcik do analizy (bo wolę się tego nauczyć niż ściągać z gotowca).

Drugi problem jest następujący:
Po kliknięciu jakiegoś checkbox-a ma się wyłączyć pole tekstowe. (to pewnie jest banalne ale też nic nie mogę znaleźć).

Z góry dzięki za pomoc.
Pozdrawiam
nexis
Pobierz paczkę advAJAX a następnie zrób tak:

index.html
  1. <script type="text/javascript" src="advajax.js"></script>
  2. <script type="text/javascript">
  3. function getBoxes() {
  4. advAJAX.get({
  5. url : "boxes.php",
  6. parameters : {
  7. "opcje" : document.getElementById("opcje").value
  8. },
  9. onSuccess : function(obj) { document.getElementById("box").innerHTML = obj.responseText; }
  10. });
  11. }
  12. </script>
  13. </head>
  14. <tr>
  15. <td>
  16. <select name="opcje" id="opcje" onchange="getBoxes()">
  17. <option value="1">Jeden</option>
  18. <option value="2">Dwa</option>
  19. <option value="3">Trzy</option>
  20. </select>
  21. </td>
  22. </tr>
  23. <tr>
  24. <td>
  25. <div id="box"></div>
  26. </td>
  27. </tr>
  28. </body>
  29. </html>


boxes.php
  1. <?php
  2. if ( isset ( $_GET['opcje'] ) ) {
  3. switch ( $_GET['opcje'] ) {
  4. case 1:
  5. echo '<input type="checkbox" name="a">Jeden<br />';
  6. break;
  7. case 2:
  8. echo '<input type="checkbox" name="b">Dwa<br />';
  9. break;
  10. default:
  11. echo '<input type="checkbox" name="x">Domyslny<br />';
  12. }
  13. }
  14. ?>


I całość dostosuj do swoich potrzeb.
webmaniak
Witam!
Mam kłopot, którego rozwiązanie pozwoli mi rozwijać moją stronkę. Mianowicie Mam dwie kolumny z przyciskiem i checkboxem. Jak nadać odpowiednie id dla np. przycisku żeby później on był odczytywany-pobierany, w skrypcie javascript??
Próbowałem
  1. id="<?php echo $wynik['id_ar'];?>"

i niby mi wyświetla prawidłowo na stronie 1, 2 itd dla kolejnych przycisków, ale nie wiem jak do tego id się odwołać javascript, bądź też w ajaxie. Mam nadzieję że to dobry temat. Będę wdzięczny za pomoc.
croc
Jeśli skrypt powstaje w tym samym pliku:
[JAVASCRIPT] pobierz, plaintext
  1. document.getElementById('<?php echo $wynik['id_ar'];?>')
[JAVASCRIPT] pobierz, plaintext

Ale coś mi się wydaje, że błądzisz w swojej koncepcji.
webmaniak
Dziękuję za odpowiedź. Za chwil kilka wypróbuje. Co do dalszej części Twojej wypowiedzi to ja nie jestem nieomylny i mogę błądzić. Jeśli wiesz w jakim elemencie to będę wdzięczny za wskazówki, bo ja nie wiem o co dokładnie może chodzić.


Przypomniałem sobie jeszcze, bo zapomniałem. A co jeśli chce się odwołać w innym pliku?? czy wtedy użyć include czy include_once??
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.