Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP]Formularz i przesłanie do bazy mysql
bladykiel
post 29.07.2012, 22:32:10
Post #1





Grupa: Zarejestrowani
Postów: 47
Pomógł: 0
Dołączył: 29.07.2012

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


Witam wszystkich. Mam taki oto problem.
Mam pętelkę foreach
Kod
foreach($monsters as $monster) {
<a href="/stworzenia-'.urlencode($monster['nazwa']).'.html">'.$monster['nazwa'].';
}

która wypisuje mi nazwy stworzeń z bazy mysql. Tu wszystko działa ok. Jednak chciałbym aby byłą możliwość wybrania dla każdego stworzenia wartości (od 0 do 5) tu screen

problem mam z przesłaniem tych wartości do formularza i wygenerowania z nich tabeli tzn. przykładowo :
4 x stworzenie1
2 x stworzenie 2
itd.
Może ktoś mi poradzić jak to zrobić?
Próbowałem to na wiele sposobów biggrin.gif i mój aktualny kod wygląda tak:
Kod
foreach($monsters as $monster) {
if(is_int($number_of_rows / 2)) { $bgcolor = $config['site']['lightborder']; } else { $bgcolor = $config['site']['darkborder']; } $number_of_rows++;
$main_content .= '<TR BGCOLOR="'.$bgcolor.'"><TD>
<form method="post"><TD width="150"></TD><TD colspan="2"><b>
                <select name="karty1">
                <option value="0">0</option>
                <option value="1">1</option>
                <option value="2">2</option>
                <option value="3">3</option>
                <option value="4">4</option>
                <option value="5">5</option>
                </select>
                <a href="/stworzenia-'.urlencode($monster['nazwa']).'.html">'.$monster['nazwa'].'</a>   </form></br>
                </TD>';
};$main_content .= '<input type="submit" name="wygeneruj" value="wygeneruj"/>';


Proszę o szybką pomoc smile.gif
Pozdrawiam

Ten post edytował bladykiel 30.07.2012, 17:33:06
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 7)
AdIoS_Neo
post 29.07.2012, 22:54:27
Post #2





Grupa: Zarejestrowani
Postów: 159
Pomógł: 43
Dołączył: 8.03.2009

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


Witam,
na szybko taki przykładzik:
  1. $main_content .= "<form method='post'>";
  2. foreach($monsters as $monster) {
  3. //if(is_int($number_of_rows / 2)) { $bgcolor = $config['site']['lightborder']; } else { $bgcolor = $config['site']['darkborder']; } $number_of_rows++;
  4. $main_content .= '<TR><TD width="150"></TD><TD colspan="2">';
  5. $main_content .= '<select name="'.$monster['nazwa'].'">';
  6. for($i=0;$i<=5;$i++){
  7. $main_content .= '<option value="'.$i.'">'.$i.'</option>';
  8. }
  9. $main_content .= '</select><a href="/stworzenia-'.urlencode($monster['nazwa']).'.html"><strong>'.$monster['nazwa'].'</strong></a></br>
  10. </TD></TR>';
  11. };$main_content .= '<input type="submit" name="wygeneruj" value="wygeneruj"/></form>';
  12.  
  13. if(isset($_POST['wygeneruj'])){
  14. // filtrowanie danych
  15. $how_much = $_POST;
  16. echo "<table>";
  17. foreach($how_much as $creature => $amount){
  18. if($amount > 0)
  19. echo "<tr>\n<td>". $amount ." x ". $creature ."</td>\n</tr>\n";
  20. }
  21. echo "</table>";
  22. }
  23. echo $main_content;
Go to the top of the page
+Quote Post
bladykiel
post 30.07.2012, 17:33:19
Post #3





Grupa: Zarejestrowani
Postów: 47
Pomógł: 0
Dołączył: 29.07.2012

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


Jesteś wielki biggrin.gif
o coś takiego mi chodziło smile.gif


edit//

i mam takie małe pytanko, dlaczego to nie działa ? tzn, wybieram Bohatera o nazwie "xorm", po czym ilość kart i po kliknięciu wygeneruj nic się nie dzieje smile.gif

  1. if($action == 'Zbuduj')
  2. {
  3. $main_content .= '<form method="POST">Wybierz Bohatera:
  4. <select name="nacja">
  5. <optgroup label="Inferno">
  6. <option value=Xorm>Xorm</option>
  7. <option value=Garant>Garant</option>
  8. <option value=Kal-Azaar>Kal-Azaar</option>
  9. <option value=Belias>Belias</option>
  10. </optgroup>
  11.  
  12. <optgroup label="Necropolis">
  13. <option value=Seria>Seria</option>
  14. <option value=Nergal>Nergal</option>
  15. <option value=Matka Namatru>Matka Namatru</option>
  16. <option value=Fleshbane>Fleshbane</option>
  17. </optgroup>
  18.  
  19. <optgroup label="Haven">
  20. <option value=Jezziel>Jezziel</option>
  21. <option value=Kasandra>Kasandra</option>
  22. <option value=Marcus>Marcus</option>
  23. <option value=Sandalphon>Sandalphon</option>
  24. </optgroup>
  25.  
  26. <optgroup label="Stronghold">
  27. <option value=Acamas>Acamas</option>
  28. <option value=Kat>Kat</option>
  29. <option value=Kelthor>Kelthor</option>
  30. <option value=Shaar>Shaar</option>
  31. </optgroup>
  32. </select>
  33. <input type="submit" name="wybierz" value="Wybierz"/>
  34. </form>';
  35.  
  36. };
  37.  
  38. if(($_POST["nacja"])=="Xorm"){
  39.  
  40. //---------------------------------------
  41. $main_content .= "<form method='post'>";
  42. foreach($monsters as $monster) {
  43. //if(is_int($number_of_rows / 2)) { $bgcolor = $config['site']['lightborder']; } else { $bgcolor = $config['site']['darkborder']; } $number_of_rows++;
  44. $main_content .= '<TR><TD width="150"></TD><TD colspan="2">';
  45. $main_content .= '<select name="'.$monster['nazwa'].'">';
  46. for($i=0;$i<=5;$i++){
  47. $main_content .= '<option value="'.$i.'">'.$i.'</option>';
  48. }
  49. $main_content .= '</select><a href="/stworzenia-'.urlencode($monster['nazwa']).'.html"><strong>'.$monster['nazwa'].'</strong></a></br>
  50. </TD></TR>';}
  51. //--
  52. $main_content .= 'Czary</br>';
  53. foreach($spells as $spell) {
  54. //if(is_int($number_of_rows / 2)) { $bgcolor = $config['site']['lightborder']; } else { $bgcolor = $config['site']['darkborder']; } $number_of_rows++;
  55. $main_content .= '<TR><TD width="150"></TD><TD colspan="2">';
  56. $main_content .= '<select name="'.$spell['nazwa'].'">';
  57. for($i=0;$i<=5;$i++){
  58. $main_content .= '<option value="'.$i.'">'.$i.'</option>';
  59. }
  60. $main_content .= '</select><a href="/stworzenia-'.urlencode($spell['nazwa']).'.html"><strong>'.$spell['nazwa'].'</strong></a></br>
  61. </TD></TR>';
  62. //--
  63. };$main_content .= '<input type="submit" name="wygeneruj" value="wygeneruj"/></form>';
  64. $karty = " ";
  65. if(isset($_POST['wygeneruj'])){
  66. // filtrowanie danych
  67. $how_much = $_POST;
  68. echo "<table>";
  69. foreach($how_much as $creature => $amount){
  70. if($amount > 0)
  71. $karty = $karty . "$creature"." x $amount".'\n';
  72. }
  73. echo "</table>";
  74. $SQL->query ("INSERT INTO `z_deck` (karty) VALUES ('$karty')");
  75. }
  76.  
  77. };



//edit 2

Oraz mam pytanie czy to jest dobrze (pod względem optymalizacji, składni itd, bo działać działa)
Kod
$karty = " ";
if(isset($_POST['wygeneruj'])){
    // filtrowanie danych
    $how_much = $_POST;
    echo "<table>";
    foreach($how_much as $creature => $amount){
        if($amount > 0)
        $karty = $karty . "$creature"." x $amount".'\n';
    }
    echo "</table>";
    $SQL->query ("INSERT INTO `z_deck` (karty) VALUES ('$karty')");
}


Ktoś skory do pomocy ? smile.gif

Ten post edytował bladykiel 30.07.2012, 17:34:07
Go to the top of the page
+Quote Post
radziopoke
post 30.07.2012, 17:36:25
Post #4





Grupa: Zarejestrowani
Postów: 125
Pomógł: 14
Dołączył: 2.06.2010

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


tak mi się wydaje że przydało by się jakaś sprawdzić dokładnie czy ktoś nie przesłał nią nieporządanych danych. warto by sprawdzić czy po prostu nie zawiera nieporządanych znaków i na wszelki wypadek je wykasować.
Go to the top of the page
+Quote Post
bladykiel
post 30.07.2012, 19:56:13
Post #5





Grupa: Zarejestrowani
Postów: 47
Pomógł: 0
Dołączył: 29.07.2012

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


hmm cały formularz jest z select option, więc nie da rady wysłać czegoś niepotrzebnego. W dodatku instrukcja if, zapobiega wysłaniu pustego formularza.



Po całym dniu wojowania poradziłem sobie z tym problemem. W pierwszym pliku zastosowałem tylko formularz z wybraniem championa oraz "action" prowadzącym do innego pliku, w którym znajduje się kod odpowiedzialny za przesłanie wybranych kart.
Jest to dobre rozwiązanie ? czy jest jakieś lepsze?

Ten post edytował bladykiel 30.07.2012, 19:37:57
Go to the top of the page
+Quote Post
xxdrago
post 30.07.2012, 20:29:21
Post #6





Grupa: Zarejestrowani
Postów: 654
Pomógł: 42
Dołączył: 27.07.2010
Skąd: Jaworzno

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


A jeżeli ktoś w option prześle ci zamiast value="1" np. value="\" ?


--------------------
GG: 10972302 :)
Go to the top of the page
+Quote Post
bladykiel
post 30.07.2012, 20:47:39
Post #7





Grupa: Zarejestrowani
Postów: 47
Pomógł: 0
Dołączył: 29.07.2012

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


jak ? to jest option select, masz do wyboru tylko 0,1,2,3,4,5
Go to the top of the page
+Quote Post
Posio
post 30.07.2012, 22:37:41
Post #8





Grupa: Zarejestrowani
Postów: 417
Pomógł: 44
Dołączył: 23.06.2011

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


Jak ? Chrome + F12 i moge sobie twój form zmienić dowolnie i przesłać w nim co chcę...
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: 14.08.2025 - 13:20