OK, chcę przerobić swój system oceniania. Teraz jest tak, że, żeby móc ocenić, trzeba mieć konto. Chodzi o to, żeby nigdy nie można było ocenić drugi raz tego samego. I to jest jedyne słuszne wyjście, jednak uciążliwe, ponieważ konto trzeba założyć.
Więc wpadłem na pomysł, który ma być mniej uciążliwy dla użytkownika, a więc nie tak dobry ;)
Otóż pomysł zakłada:
- Użytkownik wybiera ocenę i klika GŁOSUJ - tak, jak do tej pory
- Pojawia się modalne okno, w którym jest prośba o podanie maila - to już udało mi się zrobić.
- Użytkownik podaje maila, wciska OK
I teraz zaczyna się rzecz, z którą nie mogę sobie poradzić.
Chodzi o to, żeby po wciśnięciu OK, to, co użytkownik wpisał jako swój mail, zostało przepisane do ukrytego pola formularza, a następnie cały formularz ma zostać wysłany. Rzeczy niby prosta, ale mi nie działa. Kombinowałem na różne sposoby, oto ostatni(piszę bez kodu php celem jasnego kodu):
<form method="POST" name="myForm">
<input type="hidden" name="mail">
<div id="box" name="box" class="dialog">
<input type="text" name="mail" />
<button onclick="hm('box'); document.myForm.mail.value=document.box.mail.value;document.myForm.submit();">OK</button>
</div>
<a href="#" onclick="sm('box', 200, 50)">Głosuj</a>
</form>
Małe wyjaśnienie. Ten DIV to jest to okno modalne, które się pojawia po wywołaniu funkcji sm, a znika po wywołaniu hm.
Próbowałem na różne sposoby, ale zawsze dostaję jakieś błędy w stylu: "box.mail jest pusty, lub nie jest obiektem". Próbowałem też z getElementByName, z takim samym skutkiem.
[dopisane]
OK, nazwę ukrytego inputa zmieniłem na test. Zrobiłem takie przyrównanie: myForm.test.value=mail.value
I w IE wszystko pięknie śmiga, natomiast FF pokazuje komunikat, że mail is undefined :|