franki1
26.12.2014, 09:42:48
Generalnie wiem, że robię jakiś pierdołowaty błąd ale nie mogę go zlokalizować
Skrypt wygląda tak
echo '<form action =" " method = "post">';
echo '<input type="hidden" name="rodzaj" id="rodzaj" value="1">';
echo '<input type="hidden" name="uzytkownik" id="uzytkownik" value="'.$uzytkownik.'">';
echo '</form>';
echo '<input type="submit" value="Wykonaj" onclick="wyszukaj();"></br>';
echo '<form action =" " method = "post">';
echo '<input type="hidden" name="rodzaj" id="rodzaj" value="2">';
echo '<input type="hidden" name="uzytkownik" id="uzytkownik" value="'.$uzytkownik.'">';
echo '</form>';
echo '<input type="submit" value="Wykonaj" onclick="wyszukaj();"></br>';
Chodzi o to, że jak nacisnę przycisk 1 to wykonuje mi funkcje z argumentem 1 a jak przycisk 2 to z argumentem 2
Niestety czy nacisnę przycisk 1 czy 2 to tykonuje mi zawsze z argumentem1 - jak to poprawić?
viking
26.12.2014, 10:11:38
A gdzie przekazujesz argument do funkcji?
franki1
26.12.2014, 10:14:15
echo '<input type="hidden" name="rodzaj" id="rodzaj" value="2">';
Każda z tych funkcji osobno działa jak powinna. Ale jak wstawię jedną pod drugą to przyjmuje tylko argument z pierwszej rodzaj value =1;
viking
26.12.2014, 10:25:52
To jest pole html input i nie ma żadnego związku z argumentem.
Pokaż ciało tej funkcji bo pewnie jest coś w stylu forms[0]
franki1
26.12.2014, 10:50:03
Viking - tak szczerze powiedziawszy to nie do końca rozumiem.
W nagłówku mam
function wyszukaj(){
$.get( "wyniki.php", {uzytkownik:$("#uzytkownik").val(), rodzaj:$("#rodzaj").val()} ).done(function( data ) {
$("#wyniki").html(data);
});
}
funkcja ta działa prawidłowo jak przesyłam "rodzaj" z formularza typu "select", ale chcę przyciski
tzn wówczas w "body" mam:
echo '<select name="rodzaj" id="rodzaj" type="text">';
echo '<option value="1">A</option>';
echo '<OPTION VALUE="2">B</OPTION>';
echo '<OPTION VALUE="3">C</OPTION>';
echo '</select>';
echo '<input type="hidden" name="uzytkownik" id="uzytkownik" value="'.$uzytkownik.'">';
echo '<input type="submit" value="Wykonaj" onclick="wyszukaj();"></br>';
Przy powyższej konstrukcji działa jak powinno
Ja jednak chcę przyciski
No i daję w body:
echo '<form action =" " method = "post">';
echo '<input type="hidden" name="rodzaj" id="rodzaj" value="1">';
echo '<input type="hidden" name="uzytkownik" id="uzytkownik" value="'.$uzytkownik.'">';
echo '</form>';
echo '<input type="submit" value="Wykonaj" onclick="wyszukaj();"></br>';
Przy jednym przycisku - mam jeden argument i działa prawidłowo.
Tylko, że ja mam w select 3 rózne argumenty 1, 2, 3
Jeżeli przekopiuję funkcje.
echo '<form action =" " method = "post">';
echo '<input type="hidden" name="rodzaj" id="rodzaj" value="2">';
echo '<input type="hidden" name="uzytkownik" id="uzytkownik" value="'.$uzytkownik.'">';
echo '</form>';
echo '<input type="submit" value="Wykonaj" onclick="wyszukaj();"></br>';
Zmieniając tylko wartość argumentu na "2"
To w "Body" mam dwa razy tą samą funkcję, i różnią się one tylko tym, że w jednej przy "rodzaj" value =1 a przy drugiej value =2.
Niestety za każym razem wykonuje mi tą funkcję z argumentem 1. Szukam odpowiedzi na pytanie jak te dwie funkcje rozdzielić by wykonując tą samą funkcję po naciśnięciu przycisku 1 wykonywał ją z wartością 1 a przy przycisku 2 z wartością 2.
Błąd mój pewnie jest pierdołowaty ale ja go znaleźć nie mogę
Tomplus
26.12.2014, 10:51:29
Powiedz mi dlaczego masz każdy <input type="submit"> po za formularzem <form>?
Wystarczy wsadzić między tagi <form> </form> i powinno działać.
Albo wskazać konkretną wartość z input, bo w tej chwili zawsze wartość po kliknięciu będzie rodzaj=2
viking
26.12.2014, 10:54:09
Identyfikator na stronie może być tylko jeden. Jak nazwa wskazuje, id ma identyfikować jednoznacznie element i być unikalne.
franki1
26.12.2014, 11:30:43
Niestety jak dam <input type = "submit"> przed </form> to mieli funkcje ale nic nie wynika - tzn wówczas funkcja w ogóle nie działa. Chodź popatrzyłem na funkcje na innych podstronach i submit" jest wewnątrz, ale tam nie ma javy.
Co do uwagi Vikinga to zgadzam się w 100%, tylko nie wiem jak to obejść, po wywaleniu "id" z samym name nie chodzi. (nie przesyła danej) tak więc nie mam pomysłu.
Albo wskazać konkretną wartość z input, bo w tej chwili zawsze wartość po kliknięciu będzie rodzaj=2 - możesz sprecyzować - przy submit value mam wykonaj. Nie wiem jak w jeden "input" wstawić dwie zmienne.
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.