![]() |
![]() |
![]() ![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 29 Pomógł: 0 Dołączył: 28.08.2009 Skąd: wertykalne przez większość dnia Ostrzeżenie: (0%) ![]() ![]() |
Mam taki problem z formularzem:
mam liste rozwijana - do której wartosci pobieram z tabeli A (nation) wybieram sobie cos z listy rozwijanej (podczepiony JS sprawia ze w czasie rzeczywistym mam podglad informacji o kazdej z opcji) i ta wartosc jest przypisywana aktualnie zalogowanemu uzytkownikowi w tabeli B (cms_user) po zatwierdzeniu wyboru chce aby przelaczyl mnie na kolejna strone, równocześnie zapisujac wybor w odpowiedniej rubryce tabeli B (niby wszytsko w porzasiu -błedu niby nie wyrzuca ale ani redirecta ani zapisu danych nie ma. ) na dodatek cos mi sie pokićkało i juz sam nie wiem jak sie odwolać do bieżacego użytkownika - $_SESSION['user_id'] tyle wiem ale jak i gdzie to podpiac zeby to działało jak należy ![]() Proszę o jakieś sugestie co jest nie tak i/lub wskazówki jak to mozna rozwiazać bo ja już sie pogubiłem - Siedze nad tym od parunastu godzin i niestety juz nawet nie pamiętam jakich rozwiązań próbowałem. zamieszczam źródełka: step.php CODE <?php require_once 'header.php'; require_once 'conn.php'; $convert['edit'] = 'Edytuj'; $convert['add'] = 'Dodaj'; switch ($_GET['action']) { case "edit"; $nationsql = "SELECT * FROM nation WHERE nation_id = '" . $_GET['id'] . "'"; $result = mysql_query($nationsql) or die(mysql_error()); $row = mysql_fetch_array($result); $nation = $row['nation']; break; default; $nation = ""; break; } ?> <style type="text/css"> </style> <div id="gamein"> <form action="commit.php?action=<?php echo $_GET['action']; ?>&type=nation=<?php echo $_GET['id']; ?> method="post"> <script> function showDiv( n, t ) {for( var i=0;t=document.getElementById( 'bla_bla' ).getElementsByTagName( 'div' )[i];i++) t.style.display= ( i != n ? 'none' : 'block' );} </script> <select name="nation" onchange="showDiv(this.value)"> <?php $sql = "SELECT nation_id, nation_name " . "FROM nation ORDER BY nation_id ASC"; $result = mysql_query($sql) or die(mysql_error()); while ($row = mysql_fetch_array($result)) { if ($row['nation_id'] == nation) { $selected = "selected"; } else { $selected = ""; } echo ' <option value="' . $row['nation_id'] . '"' . $selected. '>' . $row['nation_name'] . '</option>' . "\r\n"; } ?> </select> <div id="bla_bla" style="background:transparent;width:1070px; height:400px; padding:0 2px 3px 0;"> <div id="0" style="border:0px ; width:1070px; height:400px; position:relative; clear:both; z-index:2;"> <p> wybierz nację </p><br /> </div> <div id="nation"> Anglia </div> <div id="nation"> Francja </div> <input type="submit" name="SUBMIT" value="<?php echo $convert[$_GET['action']]; ?>"> </form> </div> <?php require_once 'footer.php'; ?> commit.php CODE <?php require_once 'conn.php'; switch ($_GET['action']) { case "edit"; switch ($_GET['action']) { case "nation"; $sql = "UPDATE cms_users SET nation = '" . $_POST['nation'] . "' WHERE USER_ID = '" . $_get['ID'] . "'"; break; } break; case "add"; switch ($GET['type']) { case "nation"; $sql = "INSERT INTO cms_users (nation) VALUES ('" . $_POST['nation'] . "')"; break; } break; } if(isset($sql) && !empty($sql)) { echo "<!--" . $sql . "-->"; $result = mysql_query($sql) or die (mysql_error()); ?> <p align="center" style="color:#FF0000"> przejdz dalej<a href="gamestart.php"></a> </p> <?php } ?> bazy wygladaj nastepujaco tabela: cms_user kolumny: user_id, user_name, nation tabela: nation kloumny: nation_id, nation_name Podsumowując: chodzi o to aby w wyniku zatwierdzenia wyboru z tak obslugiwanej (JS) listy rozwijanej wartosc nation_id z tabeli nation zostala zapisana w kolumnie nation z tabeli cms_user dla aktualnie zalogowanego uzytkownika wiem, że to może wygląda banalnie ale naprawde mam z tym problem. nie oczekuje gotowca, tylko zeby ktos mi pokazal gdzie popelniam błąd lub czego zapomniałem. będę wdzięczny za każdą pomoc -------------------- "pomógł" daje nie dlatego, że ktoś mi pomógł
ale dlatego, że się czegoś mogłem nauczyć. |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 295 Pomógł: 9 Dołączył: 8.02.2006 Ostrzeżenie: (0%) ![]() ![]() |
skorzystaj z technologi AJAX
zasada działania będzie podobna. Wygenerujesz sobie listę i z każdym wyborem będziesz wywoływał metodę która dokona zapisu do bazy. Wszystko będzie robione w locie bez przeładowania strony. Dałbym Ci jakiś fragment kodu, ale tk dawno tego nie dotykałem, że zupełnie zardzewiałem ![]() sądzę, że AJAX pomoże Ci rozwiązać Twój problem |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 29 Pomógł: 0 Dołączył: 28.08.2009 Skąd: wertykalne przez większość dnia Ostrzeżenie: (0%) ![]() ![]() |
zawsze mozna sprobować
ale nadal pozostaje problem co robie źle: powiedzialbym ze mozna wyszczegolnic 2 glowne problemy (a przynajmniej te dwie rzeczy napewno nie dzialaja): odwolanie sie do biezacego uzytkownika i zapis w bazie - a dokladniej funkcja submit nie wyglada tak jak powinna dobra sprobuje jeszcze pare rzeczy poprawic i wrzuce potem (moze jakos dzis w nocy) co wymyslilem ps. czyzby problem byl az tak trudny: wydaje mi sie ze da sie to zrobic w ten sposob - skoro na innych podstronach mam i listy rozwijane i zapis do bazy danych i wszystkie poszczegolne elementy, ktore chce tu zastosowac to powinno sie to dac polaczyc w jedna calosc. ![]() -------------------- "pomógł" daje nie dlatego, że ktoś mi pomógł
ale dlatego, że się czegoś mogłem nauczyć. |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 19.07.2025 - 12:57 |