Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Pole Select
Forum PHP.pl > Forum > Przedszkole
Salur
Witam, jak mogę w php dodawać do bazy wartość z pola select? Chcę wartości value dodawać do bazy.

  1.  
  2. <b>Dodaj do paczki:</b>
  3. <select name="add">
  4. <option value="gold_expire">Podwójna szansa na przedmiot</option>
  5. <option value="silver_expire">+50% więcej expa</option>
  6. <option value="safebox_expire">Większy magazyn</option>
  7. <option value="autoloot_expire">3 ręka</option>
  8. <option value="fish_mind_expire">podwójna szansa na rybę</option>
  9. <option value="marriage_fast_expire">podwojone pkt. Miłości</option>
  10. <option value="money_dro_rate_expire">Podwójna szansa na zdobycie złota</option>
  11. </select><br>
Kshyhoo
Użyj szukajki: showtopic=233074&hl=select+do+bazy
Salur
Dzięki, ale nie o to mi chodzi, nie chce pobierać z bazy wartości value do formularza i potem zapisywać, lecz dodać wartość value wraz z innymi inputami do bazy.
Kshyhoo
A co to zmienia? Zasada taka sama, użyj tylko części pobierania z formularza i zapisu do bazy...
patwoj98
Jeżeli chcesz wrzucić do bazy jakąś wartość pojedynczo to najlepiej ustaw sobie zmienną:
  1. $bonus = $_POST['add'];


i tę zmienną wrzucasz do zapytania. Ewentualnie podaj zapytanie jak coś nie tak.
Salur
Mógłbyś podpowiedzieć jak sprawdzać jaka opcja została wybrana? bo chcę dodawać tylko tę wybraną.
patwoj98
Wybrana powinna przesłać się tak jak podałem wyżej w poście lub get'ie w zależności od preferencji .
Dodaj to kodu i zrób pod tym
  1. var_dump($bonus);
Salur
Czy mógłbyś mi pomóc na tym kodzie to zrobic? wink.gif


http://wklej.org/id/1735896/
Star
Jak wyślesz formularz, np taki
<select name="xx">
<option value="1">1</option>
<option value="2">2</option>

To odbierasz to za pomocą $_POST["xx]
patwoj98
W miejscu, w którym odbierasz dane ustaw sobie tak jak masz wyżej ode mnie i to w ten sposób odbierzesz. Wszystko masz rozwiązane.

Jak chcesz mieć dokładniej to wstaw jak odbierasz te dane (kod).
Salur
  1. <select name="add">
  2. <option value="gold_expire">Podwójna szansa na przedmiot</option>
  3. <option value="silver_expire">+50% więcej expa</option>
  4. <option value="safebox_expire">Większy magazyn</option>
  5. <option value="autoloot_expire">3 ręka</option>
  6. <option value="fish_mind_expire">podwójna szansa na rybę</option>
  7. <option value="marriage_fast_expire">podwojone pkt. Miłości</option>
  8. <option value="money_dro_rate_expire">Podwójna szansa na zdobycie yang</option>
  9. </select>
  10.  
  11. if (isset($_POST['dodajj'])){
  12. $name = $_POST['name'];
  13. $price = $_POST['price'];
  14. $days = $_POST['Packageon'];
  15. $opcja = $_POST['add'];
  16.  
  17. mysql_query("INSERT INTO $baza.Packages SET Name='$name', Options='$opcja', PackageON='$days', Cena='$price'");
  18. echo 'Dodano pakiet';
  19. }else {
  20. echo "nie dodano!";
  21. }
patwoj98
Jeśli zwraca Ci błąd i że nie dodano to masz błąd przy mysql_query.
Poprawnie:

Kod
mysql_query("INSERT INTO $baza.Packages (`Name`,`Options`,`PackageON`,`Cena`) VALUES ('$name','$opcja','$days','$price'")
   or die("Błąd dodawania");


Dalsze uwagi:
1. Nie używam mysql, a mysqli.
2. Trzymaj się jednego języka w bazie. Jeżeli jest polski to polski, jak angielski to angielski. Masz mixa.
3. Nazwy tabel małymi literami.
4. Nie masz pola ID? Jeśli tak to lepiej ustaw wink.gif
Salur
ID mi samo tworzy, co do zapytania to dodaje do bazy lecz pole Options jest puste w bazie.
patwoj98
Pod if(isset...) daj
  1. var_dump($_POST);


i wklej tu wynik.
Salur
Może problem jest z tym że ja chcę dodać kilka opcji? może podam js do tego jaki mam.
  1. <script>
  2. function addtopackage(val) {
  3. var x = $('[name=packageval]').val();
  4. if(x.replace(val, '') != x) {
  5. alert("Ta opcja już istnieje!");
  6. } else {
  7. if(x == '') $('[name=packageval]').val(val); else {
  8. $('[name=packageval]').val(x+';'+val);
  9. }
  10. var optionval = $('[name=add] [value='+val+']').text();
  11. $('.packageinto').html(function(n,c) { return c+optionval+', '; });
  12. }
  13. }
  14. </script>
  15. ................................................................................
    .....................
  16. <form action="?s=is_pakiet" method="POST">
  17. <b>Dodaj do paczki:</b>
  18. <select name="add">
  19. <option value="gold_expire">Podwójna szansa na przedmiot</option>
  20. <option value="silver_expire">+50% więcej expa</option>
  21. <option value="safebox_expire">Większy magazyn</option>
  22. <option value="autoloot_expire">3 ręka</option>
  23. <option value="fish_mind_expire">podwójna szansa na rybę</option>
  24. <option value="marriage_fast_expire">podwojone pkt. Miłości</option>
  25. <option value="money_dro_rate_expire">Podwójna szansa na zdobycie yang</option>
  26. </select><br>
  27. <input type="button" value="Dodaj do paczki" OnClick="addtopackage($('[name=add]').val());">
  28. <br><br>
  29. Paczka jest na<br>
  30. <input type="text" name="Packageon"> dni<br>
  31. <input type="submit" name="dodajj" value="Dodaj">
  32. </form>

patwoj98
Dodaj var_dump'a
Salur
Dodałem, nie wyświetla żadnej wartości post.
patwoj98
Dobra, to w takim razie zamiast wysyłać do "?s=is_pakiet" wyślij formularz do test.php i tam spróbuj to samo.
Salur
Okej, wywaliło to, chyba coś nie tak z zapytaniem.

  1. array(6) { ["name"]=> string(10) "nowoczesny" ["price"]=> string(4) "3413" ["packageval"]=> string(13) "silver_expire" ["add"]=> string(13) "silver_expire" ["Packageon"]=> string(2) "13" ["dodajj"]=> string(5) "Dodaj" } Blad dodawania
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.