Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Kolejny problem z formularzem
arek1983
post 21.04.2012, 12:16:55
Post #1





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 20.04.2012

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


Ciągle walczę z wczorajszym dodawania danych do tabeli z poziomu formularza. Postanowiłem że teraz zamiast z palca wpisywać nazwę kolekcji monety, niech będzie to pole wyboru które pobiera dane z nowoutworzonej tabeli. Można powiedzieć ze wszystko jakoś działa, w formularzu są do wyboru poszczególne rekordy z tabeli 'Kolekcja', ale formularz zapisuje w tabeli 'Monety' tylko pierwsze słowo nazwy kolekcji, pomimo tego ze w formularzu wyświetla się jego cała nazwa.

skrypyt formularza wygląda tak:

  1. <form action="gotowe.php" method="post">
  2. <br><b><font size=2>Rok Emisji:</font></b><br />
  3. <br><input type="text" name="Data_Emisji" size="4" maxlength="4" /><br />
  4. <br><b><font size=2>Nazwa Monety:</font></b><br />
  5. <br><input type="text" name="Nazwa_Monety" size="40" /><br />
  6. <br><b><font size=2>Nazwa Kolekcji:</font></b><br />
  7. <br><?php
  8.  
  9. $connection = @mysql_connect('localhost', 'root', 'passwd')
  10. or die('Błąd - Nie mogę połączyć się z serwerem MySQL. Spróbuj później.');
  11. $db = @mysql_select_db('test', $connection)
  12. or die('Błąd - Nie mogę połączyć się z bazą danych. Spróbuj później.');
  13.  
  14. $query="SELECT Nazwa_Kolekcji FROM Kolekcja ORDER BY Nazwa_Kolekcji ASC";
  15. $result = mysql_query ($query);
  16. echo "<select name=Nazwa_Kolekcji value=''>Kolekcja</option>";
  17. while($nt=mysql_fetch_array($result))
  18. {
  19. echo "<option value=$nt[Nazwa_Kolekcji]>$nt[Nazwa_Kolekcji]</option>";
  20. }
  21. echo "</select>";
  22. ?></br>
  23. <br><b><font size=2>Nakład:</font></b><br />
  24. <br><input type="text" name="Naklad" size="7" maxlength="7" /><br />
  25. <br><b><font size=2>Sztuk:</font></b><br />
  26. <br><input type="text" name="Sztuk" size="3" maxlength="3" /><br />
  27. <br><input type="submit" value="Dodaj Monetę" /><br />
  28. </form>


skrypyt dodawania wygląda tak:


  1. <?php
  2.  
  3. // odbieramy dane z formularza
  4. $Data_Emisji = trim($_POST['Data_Emisji']);
  5. $Nazwa_Monety = $_POST['Nazwa_Monety'];
  6. $Nazwa_Kolekcji = $_POST['Nazwa_Kolekcji'];
  7. $Naklad = trim($_POST['Naklad']);
  8. $Sztuk = trim($_POST['Sztuk']);
  9.  
  10. if (!$Data_Emisji || !$Nazwa_Monety || !$Naklad)
  11. {
  12. echo 'Nie podano wszystkich wymaganych danych, niezbędnych do zapisania monety w bazie.<br />'
  13. .'Wróć do poprzedniej strony i spróbuj jeszcze raz.';
  14. }
  15.  
  16.  
  17. {
  18. $Data_Emisji = doubleval($Data_Emisji);
  19. $Nazwa_Monety = addslashes($Nazwa_Monety);
  20. $Nazwa_Kolekcji = addslashes($Nazwa_Kolekcji);
  21. $Naklad = doubleval($Naklad);
  22. $Sztuk = doubleval($Sztuk);
  23. }
  24.  
  25. //==========================================
  26.  
  27. if(is_numeric($Data_Emisji))
  28. {
  29. //poprawny
  30. }
  31. else
  32. {
  33. echo 'Błędnie wprowadzono Rok Emisji.<br />'
  34. .'Wróć do poprzedniej strony i spróbuj jeszcze raz.';
  35. }
  36.  
  37.  
  38. if(is_numeric($Naklad))
  39. {
  40. //poprawny
  41. }
  42. else
  43. {
  44. echo 'Błędnie wprowadzono Nakład.<br />'
  45. .'Wróć do poprzedniej strony i spróbuj jeszcze raz.';
  46. }
  47.  
  48. if(is_numeric($Sztuk))
  49. {
  50. //poprawny
  51. }
  52. else
  53. {
  54. echo 'Błędnie wprowadzono liczbę Sztuk.<br />'
  55. .'Wróć do poprzedniej strony i spróbuj jeszcze raz.';
  56. }
  57. //=======================================================
  58.  
  59. $connection = @mysql_connect('localhost', 'root', 'passwd')
  60. or die('Błąd - Nie mogę połączyć się z serwerem MySQL. Spróbuj później.');
  61. $db = @mysql_select_db('test', $connection)
  62. or die('Błąd - Nie mogę połączyć się z bazą danych. Spróbuj później.');
  63.  
  64. $zapytanie = @mysql_query("INSERT INTO Monety SET Data_Emisji='$Data_Emisji', Nazwa_Monety='$Nazwa_Monety', Kolekcja='$Nazwa_Kolekcji', Naklad='$Naklad', Sztuk='$Sztuk'");
  65. if ($zapytanie)
  66.  
  67. echo 'Moneta została dodana poprawnie do bazy.'
  68. ?>


Mam nadzieję, że wyraziłem się w miarę jasno. Bardzo proszę o pomoc, co muszę zmienić zeby było ok.

Ten post edytował arek1983 22.04.2012, 11:15:09
Go to the top of the page
+Quote Post
lukesh
post 22.04.2012, 00:11:51
Post #2





Grupa: Zarejestrowani
Postów: 113
Pomógł: 14
Dołączył: 25.08.2006

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


Zacznij od tego, żeby poprawnie nadać atrybut name dla pola select.

echo "<select name=Nazwa_Kolekcji value=''>Kolekcja</option>";

Nie brakuje Ci tu czasem dwóch nawiasów?

select name="Nazwa_Kolekcji"


--------------------
Edumemo.pl - Nauka Języków Obcych
Go to the top of the page
+Quote Post
Szymciosek
post 22.04.2012, 00:33:54
Post #3





Grupa: Zarejestrowani
Postów: 1 168
Pomógł: 126
Dołączył: 5.02.2010
Skąd: Świdnica

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


Na forum działają określone znaczniki np CODE czy PHP, masz je nawet w przyciskach przy pisaniu postu, czemu niektórzy z tego nie korzystają ? Ładniej wtedy wszystko jest podzielone i wyświetlone co wiąże się z szybszą i chętniejszą pomocą ze strony użytkowników forum

Ten post edytował Szymciosek 22.04.2012, 00:34:38
Go to the top of the page
+Quote Post
arek1983
post 22.04.2012, 11:13:54
Post #4





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 20.04.2012

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


Problem rozwiązany przez użytkownika z innego forum. Poprawnie powinno wyglądać to tak:

  1. echo "<select name='Nazwa_Kolekcji'><option value=''>Kolekcja</option>";
  2. while($nt=mysql_fetch_array($result))
  3. {
  4. echo "<option value='$nt[Nazwa_Kolekcji]'>$nt[Nazwa_Kolekcji]</option>";
  5. }
  6. echo "</select>";


Być może komuś się taki skrypcik przyda.

Dzięki za odpowiedź na mój post.
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 29.03.2024 - 06:32