Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: odczytywanie danych z formularza
Forum PHP.pl > Forum > PHP
Dziadzia
Cześć...
mam takie oto coś z któego chcę pobrać dane...

  1. <div class="tekst-dostepne-opcje"><span><?php echo $text_option; ?></span></div>
  2. <br />
  3. <form name="formularz" onchange="wypisz(); return false;">
  4. <?php foreach ($options as $option) { ?>
  5. <?php if ($option['type'] == 'select') { ?>
  6. <div id="option-<?php echo $option['product_option_id']; ?>" class="option">
  7. <?php if ($option['required']) { ?>
  8. <span class="required">*</span>
  9. <?php } ?>
  10. <b><?php echo $option['name']; ?>:</b><br />
  11. <select name="option[<?php echo $option['product_option_id']; ?>]">
  12. <option value=""><?php echo $text_select; ?></option>
  13. <?php foreach ($option['option_value'] as $option_value) { ?>
  14. <option value="<?php echo $option_value['product_option_value_id']; ?>"><?php echo $option_value['name']; ?>
  15. <?php if ($option_value['price']) { ?>
  16. (<?php echo $option_value['price_prefix']; ?><?php echo $option_value['price']; ?>)
  17. <?php } ?>
  18. </option>
  19. <?php } ?>
  20. </select>
  21. </div>
  22. <br />
  23. <?php } } ?>
  24. </form>


szczerze nie do końca wiem, czy formularz zrobiony w tej pętli opcji jest poprawnie zrobiony...
dodatkowo mam taki skrypt który miał pobierać dane z tego formularza i wypisywać... był to pierwszy krok do tego aby reszta zaczęła działać

  1. <script type="text/javascript">
  2. function wypisz(){
  3. var opcje = document.formularz.option[<?php echo $option['product_option_id']; ?>].options;
  4. for (var i=0; i< opcje.length; i++){
  5. if (opcje[i].selected){
  6. var nowe = document.createElement('div');
  7. nowe.id = 'mojdiv';
  8. nowe.innerHTML=opcje[i].text;
  9. document.getElementById('tutaj-ma-pisac').appendChild(nowe);
  10. }
  11. }
  12. return false;
  13. }
  14. </script>


następnie za pomocą tych danych chcę zrobić warunek, że jeżeli wybiorę opcje nr1 to cena będzie dwa razy większa. Jeżeli trzecią to trzy razy większa itd...

Czy ktoś może mi pomóc jak napisać warunek oraz co jest źle w pozostałych częściach?
Z góry dzięki za pomoc i poświęcony czas. Pozdrawiam
Prezi2907
Z tego kodu mało widomo. nie wiem czy problem jest z konstrukcją kodu czy już z wygenerowanym formularzem. Dostajesz jakiś błąd w konsoli po zmianie czegokolwiek?
Coś się dziej?

Możesz dać przykładowy już wygenerowany HTML takiego formularza? Tak będzie łatwiej Ci pomóc
Dziadzia
Tak to wygląda z kodu źródłowego:

  1. <div class="tekst-dostepne-opcje"><span>Dostępne opcje</span></div>
  2. <br />
  3. <form name="formularz" onchange="wypisz(); return false;">
  4. <div id="option-240" class="option">
  5. <span class="required">*</span>
  6. <b>Uszlachetnienie:</b><br />
  7. <select name="option[240]">
  8. <option value=""> --- Proszę wybrać --- </option>
  9. <option value="48">Folia błysk </option>
  10. <option value="49">Folia mat </option>
  11. <option value="50">Lakier UV </option>
  12. </select>
  13. </div>
  14. <br />
  15.  
  16. </form>
  17.  
  18. <script type="text/javascript">
  19. function wypisz(){
  20. var opcje = document.formularz.option-240.options;
  21. for (var i=0; i< opcje.length; i++){
  22. if (opcje[i].selected){
  23. var nowe = document.createElement('div');
  24. nowe.id = 'mojdiv';
  25. nowe.innerHTML=opcje[i].text;
  26. document.getElementById('tutaj-ma-pisac').appendChild(nowe);
  27. }
  28. }
  29. return false;
  30. }
  31. </script>
Prezi2907
  1. <form name="formularz" >
  2. <div id="option-240" class="option">
  3. <span class="required">*</span>
  4. <b>Uszlachetnienie:</b><br />
  5. <select name="option[240]" onchange=\"wypisz(this);\">
  6. <option value=""> --- Proszę wybrać --- </option>
  7. <option value="48">Folia błysk </option>
  8. <option value="49">Folia mat </option>
  9. <option value="50">Lakier UV </option>
  10. </select>
  11. </div>
  12. <br />
  13.  
  14. </form>
  15. <div id='tutaj_pisz'></div>


jest mi ciężko powiedzieć co ty chcesz tym osiągnąć ale rozpisze Ci jak pobrać dane z tego dane i jak je przekazać dalej smile.gif
Rozpisze to z wykorzystaniem JQUERY bo "suchy" JavaScript mnie przeraża smile.gif
  1. <script src="http://code.jquery.com/jquery-1.11.0.min.js"></script>
  2. <script type='text/javascript'>
  3. function wypisz(t)
  4. {
  5. if($(t).val() != "")
  6. {
  7. var gdzieDodawac = $("#tutaj_pisz");
  8. var coDodac = "<div>{TWÓJTEKST} | <input type='button' value='Usuń' onclick=\"usunPozycje(this);\"/><input type='hidden' id='opcja' value='{ID}' /></div>";
  9. gdzieDodawac.append(coDodac.replace("{TWÓJTEKST}" , $(t).find("option:selected").text()).replace("{ID}", $(t).val() ));
  10. }
  11. }
  12. function usunPozycje(t)
  13. {
  14. $(t).parent("div").remove();
  15. }
  16. </script>


Kod pierwszy to twoja funkcja która coś tam rysuje (przebudowałem formularz). Kod drugi to usuwanie wybranej pozycji jak by się ktoś rozmyślił.
Teraz aby zliczać te pozycje możesz dodać sobie obróbkę danych + możesz to zrobić jak sobie chcesz. Możesz te divy dawać w formularzu dzięki czemu klikając na submit wyślesz je do dalszej obróbki smile.gif

Nie wiem co planujesz dokładnie i jak to chcesz obrabiać ale pokazałem podstawy smile.gif

Ps. nie testowałem tego więc może tam być gdzieś literówka czy coś smile.gif
Dziadzia
Dzięki jest to bardzo fajny konkret smile.gif
Mam tylko pytanie jak to przekształcić w zapytanie... jest to troszkę bardziej złożone ponieważ potrzebuję to do wypisywania danych z sql.
tzn potrzebuję pobrać tą opcje (ta która sie teraz wypisuje) następnie zrobić warunek, że jeżeli ta value tej opcji = 67 to w zapytaniu $sql pojawi mi się warunek WHERE value_opcji = "ta opcja np.:67"

Nie wiem po prostu do jakiej zmiennej mam się odwołać... czy jest możliwość zapisania w jakieś zmiennej odczytanego pola formularza żeby go później wykorzystać do takich celów jak napisałem?

Dzięki za pomoc, jest juz dobrze smile.gif
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.