Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php] Przesłanie danych POST z listy wyboru
Riff
post
Post #1





Grupa: Zarejestrowani
Postów: 22
Pomógł: 0
Dołączył: 17.10.2007

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


Jako iż to mój pierwszy post na forum chciałbym się przywitać - a więc witam (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) . Przechodząc do rzeczy...

Nie majac nikogo, kto byłby w stanie znosić moje pytania na gg muszę zadowolić się tymże forum, gdzie nie zawsze można znaleźć odpowiedź poprzez wyszukiwarkę. Najlepsza nauka poprzez praktykę, więc od kilku dni piszę sobie skromny 'katalog osób' - idea: podany jest nick, kraj, prowincja, miasto i dane kontaktowe do osoby, która się wpisała do bazy danych. Utknąłem jednakże na następującym zagadnieniu...

Otóż, z listy rozwijanej wybieram kraj - pojawia się formularz, w którym wpisuję nazwę prowincji (stanu, województwa). Wpisane dane przetwarzane są przez skrypt, który dodaje do bazy danych identyfikator prowincji, jej nazwę oraz identyfikator kraju, pod jakim dodana została ta prowincja.

Jednakże pod formularzem chciałbym wyświetlać listę wszystkich aktualnych prowincji w wybranym kraju. Zapytanie do bazy danych wygląda więc następująco:

  1. <?php
  2. $sql = ("SELECT * FROM udir_province WHERE country_id='$id_kraju'");
  3. ?>


gdzie:
udir_province - tabela prowincji
country_id - identyfikator kraju w tabeli prowincji
$id_kraju - zmienna określona w kodzie w następujący sposób:

  1. <?php
  2. $id_kraju = $_POST['country_id'];
  3. ?>


gdzie to $_POST['country_id'] to nazwa identyfikatora przesłanego (a przynajmniej powinien być przesłany) metodą post z listy wyboru, której kod znajduje się poniżej:

  1. <form action="" method="post"> 
  2. <select name="country_name" onchange="this.form.submit()"> 
  3. <option value="">-- Choose a country --</option> 
  4. <?php 
  5. // polaczenie i wybranie bazy danych
  6. if ($dbc = @mysql_connect ($host, $user, $pass)) {
  7. if (!@mysql_select_db ($name)) {
  8. die ('<p>i am sorry, cannot select the database, because: <b>' . mysql_error . '</b></p>');
  9. }
  10. } else {
  11.  die ('<p>I am sorry, cannot connect to the database, because: <b>' . mysql_error() . '</b></p>');
  12. }
  13. // zapytanie
  14. $pozycja = mysql_query("SELECT * FROM udir_country ORDER BY country_name ASC") 
  15. or die('Error in the query');
  16. if(mysql_num_rows($pozycja) > 0) {
  17. while($r = mysql_fetch_assoc($pozycja)) { 
  18. // Tutaj następuje wyświetlenie nazwy kraju między tagami <option>
  19. echo "<option>".$r['country_name']."</option>"; 
  20. } 
  21. }
  22. ?>
  23. </select> 
  24. </form>


Po wybraniu z listy danego kraju country_name zostaje bez problemu przesłane, przez co dalszy skrypt jest w stanie dodać prowincję. I teraz przechodzimy do sedna problemu (nareszcie (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) ).

Otóż, podczas gdy $r['country_name'] zostaje przesłane, to nie mam zielonego pojęcia jak przesłać country_id. Tworząc coś takiego:

  1. <?php
  2. echo "<option>".$r['country_name']."<b>".$r['country_id']."</b></option>";
  3. ?>


W liście wyboru zostaną wyświetlone zarówno nazwa jak i identyfikator kraju, jednakże nie zostają one poprawnie przesłane - nie wiem z jakiego powodu, póki co żaden podręcznik ani strona mnie nie oświeciły w tej kwestii, dlatego zwracam się z prośbą o pomoc tutaj - jak więc przesłać dwie osobne dane POST tak, jak przesyłana jest jedna ['country_name']? Jakieś ukryte pole czy co?

Z góry przepraszam, jeśli to co napisałem jest niezrozumiałe - tak jak powiedziałem, jestem zielonym groszkiem, któremu nie ma kto wytłumaczyć najprostrzych idei programowania w php,a przeszukiwać samemu księgi i witryny nawet cierpliwemu człowiekowi może si
 znudzić - tymbardziej, jak nie znajduje odpowiedzi po dniach poszukiwań (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 7.10.2025 - 09:10