Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [AJAX + PHP + MYSQL] Dynamiczny formularz.
Riggs
post 2.07.2007, 08:06:29
Post #1





Grupa: Zarejestrowani
Postów: 162
Pomógł: 13
Dołączył: 16.06.2007

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


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
Go to the top of the page
+Quote Post
nexis
post 10.07.2007, 11:45:36
Post #2





Grupa: Zarejestrowani
Postów: 1 012
Pomógł: 109
Dołączył: 26.09.2003
Skąd: nexis.pl

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


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.


--------------------
Zend Certified Engineer

Kliknij POMÓGŁ jeśli moja odpowiedź okazała się użyteczna!
Go to the top of the page
+Quote Post
webmaniak
post 18.05.2010, 20:09:21
Post #3





Grupa: Zarejestrowani
Postów: 371
Pomógł: 30
Dołączył: 14.04.2010

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


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.

Ten post edytował webmaniak 18.05.2010, 20:10:46


--------------------
Pomogłem - kliknij , wprowadziłem w błąd - poinformuj niżej lub na pm.
Go to the top of the page
+Quote Post
croc
post 18.05.2010, 22:50:21
Post #4





Grupa: Zarejestrowani
Postów: 706
Pomógł: 108
Dołączył: 12.03.2010

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


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.
Go to the top of the page
+Quote Post
webmaniak
post 19.05.2010, 16:57:11
Post #5





Grupa: Zarejestrowani
Postów: 371
Pomógł: 30
Dołączył: 14.04.2010

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


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??

Ten post edytował webmaniak 19.05.2010, 18:00:15


--------------------
Pomogłem - kliknij , wprowadziłem w błąd - poinformuj niżej lub na pm.
Go to the top of the page
+Quote Post

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 Wersja Lo-Fi Aktualny czas: 22.07.2025 - 04:20