Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [html] formularz nie wysyła danych
Forum PHP.pl > Forum > Przedszkole
jarekj8
Witam!

tak wygląda formularz:

index.php
  1. <form method="GET">
  2. <input id=1 type=radio name=glos value="1">>Super!<br>
  3. <input id=2 type=radio name=glos value="2">Fajny, ale widziałem lepsze<br>
  4. <input id=3 type=radio name=glos value="3">Może być<br>
  5. <input id=4 type=radio name=glos value="4"> był lepszy<br>
  6. <input id=5 type=radio name=glos value="5">Totalne dno<br>
  7. <input id=6 type=radio name=glos value="6">Hę??<br>
  8. <input type="hidden" name="dzial" value="sonda1">
  9. <input type="submit" value="glosuj">
  10. </form>

Problem:
gdy zaznaczę którąś z opcji i kliknę głosuj to tak, jakbym nacisnął odśwież (adres strony się nie zmienia)

natomiast gdy kliknę głosuj bez zaznaczania to przenosi mnie do działu sonda1 (czyli działa dobrze)

Gdzie popełniłem błąd?
strife
U mnie ten kod działa, sprawdałem na Operze, IE a także na Fx, zmienia się adres np. ?glos=6&dzial=sonda1. Mimo to pozwoliłem sobie i tak poprawić ten kod i uzupełnić o "ciapki" ...
  1. <form method="GET">
  2. <input id="1" type="radio" name="glos" value="1">Super!<br >
  3. <input id="2" type="radio" name="glos" value="2">Fajny, ale widziałem lepsze<br>
  4. <input id="3" type="radio" name="glos" value="3">Może być<br>
  5. <input id="4" type="radio" name="glos" value="4"> był lepszy<br>
  6. <input id="5" type="radio" name="glos" value="5">Totalne dno<br>
  7. <input id="6" type="radio" name="glos" value="6">Hę??<br>
  8. <input type="hidden" name="dzial" value="sonda1">
  9. <input type="submit" value="glosuj">
  10. </form>
jarekj8
u mnie nie działa na Firefoxie i IE (Opery nie mam aktualnie zainstalowanej), co ciekawe wszystkie inne formularze na innych stronach działają bez zarzutu.

sonda jest tutaj
Wykrywacz
A mi się wydaje że nie wskazujesz mu gdzie ma te dane tym get'em wysłać.
A dokładniej niema action="".
jarekj8
dodanie action="index.php" nic nie zmienia.
Wykrywacz
A napisz jak chcesz wysłać te informacje?

Bo rozumiem jak byś to chciał POST'em puścić w ten sposób dając action po prostu na index.php

http://php.net.pl/manual/pl/language.varia....predefined.php
jarekj8
przecież pisze w formuarzu method="GET"
maryaan
na poczatku index.php (czy innego pliku doktorego wysylasz te dane) dodaj linijke :
  1. <?php
  2. var_dump($_GET)
  3. ?>
Wykrywacz
Boshe poczytaj ten manual.

Aby wysłać postem wystarczy wybrać metode i nadać wartości.

Przy gecie przesyłasz informacje z adresem czyli
  1. <?php
  2. action="index.php?1wartosc=wartpsc_1&2wartpsc=wartosc"
  3. ?>
Ziels
Echz... jak nic nie jest zaznaczone to jasne że się nie wysyła...
jarekj8
Cytat(Ziels @ 2.02.2007, 11:52:05 ) *
Echz... jak nic nie jest zaznaczone to jasne że się nie wysyła...

czytaj ze zrozumieniem: jak zaznaczę to nie wysyła, a jak nie zaznaczę to działa dobrze
Amorph
@wykrywacz:
  1. <?phpaction="index.php?1wartosc=wartpsc_1&2wartpsc=wartosc"?>

Jak rozumiem chcesz aby html dynamicznie podczas przełączania radiobuttona przypisał wartość do zmiennych !??!?!
Jak chcesz aby to html robił ?

Moim zdaniem sondę robić przez metodę get jest poronione. Każdy może skopiować sobie adres do schowka i w łatwy sposób wywoływać kilkakrotnie wygenerowany adres... Pomyśl nad użyciem metody POST.
Wykrywacz
Amorph
Słuszna uwaga ale jak chcesz przekazać wartości i zapisać je w czym kolwiek używając html'a ?
Jeżeli wiesz jak to powiedz chętnie się nauczę smile.gif.

Stąd napisałem, o tym aby posłać to w ten sposób, już pomijając że pełną rację masz że powinno iść to POST'em
Amorph
Cytat
Słuszna uwaga ale jak chcesz przekazać wartości i zapisać je w czym kolwiek używając html'a ?

Nie pisałem o zapisywaniu przez html a o przypisywaniu.
A jak przypisywać... Pola w formularzach przyjmują jakeś wartości.... czyli są przypisywane.

A co do tematu...
@jarekj8:
W którym miejscu odczytujesz przesłane dane?questionmark.gif
$_GET[''] questionmark.gifquestionmark.gif
jarekj8
odczytywanie danych jest w innym pliku... ale to bym musiał wam cały kod wysłać

mi nie chodzi o samo to że nie odczytuje danych tylko o to że ich nie wysyła (nie ma ich w adresie)...

co do wielokrotnego głosowania to mam to zabezpieczone skryptem
Wykrywacz
To pokaż fragment odpowiedzialny już za samo wysłanie, tego Geta
jarekj8
wysyłanie? to formularz wysyła, chyba chodziło ci o odbieranie... wyślę wszystko:

index.php:
  1. <?php
  2. if($_GET[dzial]) {
  3. $dzial = $_GET[dzial];
  4. } else {
  5. $dzial = "start";
  6. }
  7.  
  8. if($dzial=="sonda1") require("skrypty/sonda1/cookie1.php");
  9.  
  10. include("dzialy/$dzial.php");
  11.  
  12. //formularz troche pozmienialem:
  13. <form action="index.php" name="sonda" method="GET">
  14. <font face="Verdana" size="1">
  15. <center><b>Jak oceniasz nowy design (wygl&#261;d) strony??</b></center><br>
  16. <div align="left">
  17. <input id=1 type=radio name=glos value="1"><label for=1>Super!</label><br>
  18. <input id=2 type=radio name=glos value="2"><label for=2>Fajny, ale widzia&#322;em lepsze</label><br>
  19. <input id=3 type=radio name=glos value="3"><label for=3>Mo&#380;e być</label><br>
  20. <input id=4 type=radio name=glos value="4"><label for=4><!--<a href="http://stronaklasy2c.fasthost.pl/">Poprzedni</a>--> by&#322; lepszy</label><br>
  21. <input id=5 type=radio name=glos value="5"><label for=5>Totalne dno</label><br>
  22. <input id=6 type=radio name=glos value="6"><label for=6>H&#281;??</label></div><br>
  23. <input type="hidden" name="dzial" value="sonda1">
  24. <center><input type="image" src="images/button1.png"></center>
  25. </font>
  26. </form>
  27. ?>


cookie1.php:
  1. <?php
  2. //Ankieta na stronie WWW - czesc obslugujaca glosowanie
  3. $glosowanie1 = array ('6' => 'Super!', '5' => 'Fajny, ale widziałem lepsze',
  4.  '4' => 'Może być', '3' => 'Poprzedni był lepszy',
  5.  '2' => 'Totalne dno', '1' => 'Hę??');
  6. function glosowanie1 ($glosowanie1, $sonda1) {
  7. // funkcja zapamiętuje wynik głosowania danej osoby
  8. setcookie ('glosowano1', "1", time()+3600*24*7); // pamiętamy, że już głosowano
  9. if (file_exists("skrypty/sonda1/glosowanie1.txt")) { // jest plik z głosowaniem
  10. $plik1 = fopen ("glosowanie1.txt", "r+");
  11. flock ($plik1, 2);
  12. $wiersz1 = fgets ($plik1, 255);
  13. $wyniki1 = split ("|", $wiersz1);
  14. fseek ($plik1, 0);
  15. } else {  // nie ma pliku, więc go tworzymy
  16. $plik1 = fopen ("skrypty/sonda1/glosowanie1.txt", "w+");
  17. flock ($plik1, 2);
  18. }
  19.  
  20. for ($i=0; $i<count($glosowanie1);$i++) { // aktualizacja wyników
  21. if ($sonda1 == $i+1) { $wyniki1[$i]++; }
  22. fputs ($plik1, $wyniki1[$i]);
  23. if ($i<count($glosowanie1)-1) {fputs ($plik1, '|'); }
  24. }
  25. flock ($plik1, 3);
  26. fclose ($plik1);
  27. }
  28.  
  29.  
  30. if ($_GET['glos'] && $_COOKIE['glosowano1']) {  // oddano głos - aktualizacja danych i przekierowanie
  31. glosowanie1 ($glosowanie1, $_GET['glos']);
  32.  
  33. // "odkomentuj" jeden z poniższych nagłówków
  34.  
  35. // jeżeli używasz w HTML przez SSI lub w innym php przez require:
  36. header ("Location: ".$_SERVER["HTTP_REFERER"]);
  37.  
  38. // jeżeli chcesz używać samodzielnie:
  39. // header ("Location: http://".$GLOBALS["SERVER_NAME"].
  40. //  $GLOBALS["REDIRECT_URL"]);
  41. die();
  42. }
  43. ?>


sonda1.php:
  1. <? 
  2. if (file_exists("skrypty/sonda1/glosowanie1.txt")) {
  3. $plik1 = fopen ("skrypty/sonda1/glosowanie1.txt", "r");
  4. $wiersz1 = fgets ($plik1, 255);
  5. fclose ($plik1);
  6. $wyniki1 = split ("|", $wiersz1);
  7. for ($i=0; $i<count($wyniki1); $i++) { $liczbaglosow1 += $wyniki1[$i]; } 
  8. }
  9. print '<font face="Verdana" size="2"><center><P><b>Jak oceniasz nowy design (wygląd) strony??</b></P></center></font><font face="Verdana" size="1"><TABLE width="344" border="0" cellpadding="0" cellspacing="5">';
  10. for (reset ($glosowanie1); $klucz1=key($glosowanie1); next ($glosowanie1)) {
  11. print "<TR><TD width="150">".pos($glosowanie1).": </TD><TD width="150">";
  12. if ($liczbaglosow1 == 0) {
  13. $procent1 = 0; // aby uniknąć dzielenia przez zero!
  14. } else {
  15. $procent1 = ($wyniki1[$klucz1-1]/$liczbaglosow1)*100;
  16. }
  17. print "<IMG SRC="obrazki/pasek.gif" WIDTH=" . ($procent1*1.5+1) . " HEIGHT="10"></TD>";
  18. print "<TD ALIGN=RIGHT> ";
  19. printf ("%0.0f", $procent1);
  20. print "%</TD></TR>";
  21. }
  22. print "<TR><TD ALIGN=left colspan=3>Łączna ilość oddanych głosów: <b>$liczbaglosow1</b>";
  23. print "</TD></TR>";
  24. print "</TABLE></font>";
  25. ?>
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.