Zajmuję się tworzeniem strony gildiowej. Obowiązuje tam zasada dodawania punktów DKP za jakieś tam eventy. Moim zadaniem jest napisanie skryptu, który będzie wyświetlał wszystkich użytkowników w tabeli. Przy każdym użytkowniku znajduje się checkbox, którego value = $user_id, oraz oczywiście input type=number, gdzie wpisywana jest wartość punktów DKP. Problem polega na tym, że jak wyciągam dane z value checkboxa, to nic się nie dzieje... Strona się odświeża/przeładowuje i tyle. Mam kod przykładowy, na którym się wzorowałem. Ten kod działa, mój już nie.
Oto fragment mojego kodu (proszę nie przejmować się ewentualnym brakiem domknięć if'ów i innych):
<form action="index.php?page=dkp_manage_all" name="dkp" method="post"> <table> <tr> <td>Select:</td> <td>Name:</td> <td>DKP Earned:</td> <td>DKP Spent:</td> <td>DKP Left:</td> <td>Ammount:</td> </tr> <tr> <td align="left">Select all</td> <td colspan="6" align="left"><input type="checkbox" name="select_all" /></td> </tr> <?php $user_id = $user_data['id']; { ?> <tr class="selected"> <td><input type="number" value="100" name="dkp_value" /></td> </tr> <?php } ?> <tr> <td colspan="7" align="center"><input type="submit" name="manage_dkp" value="Manage DKP" /></td> </tr> </table> <input type="hidden" name="hidden_selected" value="yes"> </form> </div> </body> <?php if ($_POST['hidden_selected'] == 'yes') { $dkp_earned = $r['dkp_earned']; $dkp_spent = $r['dkp_spent']; $dkp = $r['dkp']; $value = $_POST['dkp_value']; { foreach ($_POST['select_check'] as $id) { } } // $query = "UPDATE `users` SET `dkp` = '$dkp_new_value', `dkp_earned` = '$dkp_earned_new' WHERE `id` = '$id'"; } ?> <form action="index.php?page=dkp_manage_all" method="post"> <input type="checkbox" name="check_list[]" value="value 1"> <input type="checkbox" name="check_list[]" value="value 2"> <input type="checkbox" name="check_list[]" value="value 3"> <input type="checkbox" name="check_list[]" value="value 4"> <input type="checkbox" name="check_list[]" value="value 5"> <input type="submit" /> </form> <?php foreach($_POST['check_list'] as $check) { //so, if I were to check 1, 3, and 5 it would echo value 1, value 3, value 5. } } ?>
Fragment na samym dole kodu, czyli to:
<form action="index.php?page=dkp_manage_all" method="post"> <input type="checkbox" name="check_list[]" value="value 1"> <input type="checkbox" name="check_list[]" value="value 2"> <input type="checkbox" name="check_list[]" value="value 3"> <input type="checkbox" name="check_list[]" value="value 4"> <input type="checkbox" name="check_list[]" value="value 5"> <input type="submit" /> </form> <?php foreach($_POST['check_list'] as $check) { //so, if I were to check 1, 3, and 5 it would echo value 1, value 3, value 5. } } ?>
działa bez najmniejszych problemów. Mój fragment nie działa zupełnie.
W związku z tym pytanie: co robię źle? Dlaczego jeden fragment działa dobrze, a drugi, pomimo tego, że teoretycznie taki sam, nie działa zupełnie? Jak uniknąć podobnych błędów w przyszłości?
Dziękuję z góry za odpowiedź oraz wszelką pomoc.
Pozdrawiam.
EDIT:
OK, wybaczcie, mój błąd. Efekt ciągłego poprawiania

<?php $user_id = $user_data['id']; { ?> <tr class="selected">
na to:
<?php { ?> <tr class="selected">
EDIT2:
Może jednak niech ten temat jeszcze tu posiedzi


Jeszcze raz, tym razem cały dostępny kod jaki posiadam (z pominięciem wrażliwych danych, wiadomo):
<form action="index.php?page=dkp_manage_all" name="dkp" method="post"> <table> <tr> <td>Select:</td> <td>Name:</td> <td>DKP Earned:</td> <td>DKP Spent:</td> <td>DKP Left:</td> <td>Ammount:</td> </tr> <tr> <td align="left">Select all</td> <td colspan="6" align="left"><input type="checkbox" name="select_all" /></td> </tr> <?php if ($_SESSION['id']) { if ($_SESSION['rank'] == '2' || $_SESSION['rank'] == '3' || $_SESSION['rank'] == '4') { { ?> <tr class="selected"> <td><input type="number" name="dkp_value[]" /></td> </tr> <?php } ?> <tr> <td colspan="7" align="center"><input type="submit" name="manage_dkp" value="Manage DKP" /></td> </tr> <?php } else { } } else { } ?> </table> <input type="hidden" name="hidden_selected" value="yes"> </form> </div> </body> <?php if ($_POST['hidden_selected'] == 'yes') { $dkp_earned = $r['dkp_earned']; $dkp_spent = $r['dkp_spent']; $dkp = $r['dkp']; $value = $_POST['dkp_value']; { foreach ($_POST['select_check'] as $id) { if ($value >= 0) { $dkp_earned_new = $dkp_earned + $value; $dkp_new_value = $dkp + $value; $query = "UPDATE `users` SET `dkp` = '$dkp_new_value', `dkp_earned` = '$dkp_earned_new' WHERE `id` = '$id'"; } else if ($value < 0) { $dkp_spent_new = $dkp_spent + $value; $dkp_new_value = $dkp + $value; $query = "UPDATE `users` SET `dkp` = '$dkp_new_value', `dkp_spent` = '$dkp_spent_new' WHERE `id` = '$id'"; } else { } } } else { } { } else { } // $query = "UPDATE `users` SET `dkp` = '$dkp_new_value', `dkp_earned` = '$dkp_earned_new' WHERE `id` = '$id'"; } ?>
Więc co jest nie tak? Wybieram za pomocą checkbox'ów użytkowników, którzy zostaną obdarowani punktami DKP. Wpisuję ilość. Wcześniej próbowałem to zrobić na suwakach, ale wychodziły jeszcze dziwniejsze rzeczy, pewnie do tego wrócę, bo sposób znacznie lepszy, niż ręczne wpisywanie... OK, wpisuję ilość. Klikam buttona i... następuje refresh. Jak poprzednio. Próbowałem też tak, że do dkp_value - wartość wpisywana w polu input, dla każdego usera osobna dodawałem znacznik [] określając tabelę w ten sposób. Chyba. Szczerze, to nigdy się w tego typu rzeczy nie bawiłem. Siedzę już trochę w PHP, ale edytowanie kilku, czy nawet kilkunastu wpisów z różnymi wartościami to mój pierwszy raz. Stąd takie problemy. Jak dodawałem znacznik [] do nazwy inputa, to dodawałem pod pierwszym foreach kolejny, tym razem tyczący się wybierania danych z tabeli dkp_value. Niby działało, jakieś tam wartości przypisywało. Szkoda tylko, że kod leciał od góry do dołu (właściwie to tak jak powinien

Przyznaję się bez bicia. Nie mam pojęcia jak to zrobić. Jak patrzę na te tutoriale w necie, to wszędzie sobie sami bazę ustalają, sami dopisują wartości i sami decydują co ma w tych wartościach być. U mnie tabela jest generowana automatycznie i wpisywanie każdego konta do takiej tabeli byłoby po prostu śmieszne.
Przyznaję się do swej niewiedzy. Nie mam pojęcia jak to napisać tak, aby działało. Wiem natomiast, że kiedy już to działać będzie, to następny skrypt tego typu będzie miał 200% więcej możliwości, niż obecny. Postęp

Proszę Was o pomoc i z góry dziękuję za wyrozumiałość i cierpliwość.
Pozdrawiam.