Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [js] dwa formularze w jednym?
Forum PHP.pl > Forum > Przedszkole
colinQ
Chcę zrobić takie coś:

[ tutaj po kliknieciu "losuj" pokazuje sie login z bazy ]-----[losuj]
[ wybór ataku ]
[ok]


i chcę aby po kliknięciu na losuj php wykonało zapytanie typu SELECT i wczytało pole "log" do tego pola w formularzu.

I po każdym kliknięciu robiłoby to samo tylko że np. inny login... bo z bazy wyszukiwałby losowo...

później należałoby wybrać atak i kliknąć "ok" i do tej samej strony wysłanybyłby formularz z loginem i atakiem...

Jak to rozwiązać? Dwa formularze? i je jakoś połączyć?
lord_t
Tak jak piszesz, 2 formularze + ajax ( w przypadku pierwszego formularza ).
colinQ
Hm. Obszedłem to JavaScriptem, ale nie do końca...

  1. <?php
  2. function sabotaz_pokaz_form() {
  3.  
  4. echo '<form method="post" name="fm">';
  5. echo "<input type='text' name='lol' readonly>";
  6. echo '<input onclick=funkcja(); type=button value=alue><br><br>';
  7. echo '<select name="nazwa_sab">';
  8. echo '<option value="1">uprowadzenie zołnierzy</option>';
  9. echo '<option value="2">uprowadzenie urzędnika</option>';
  10. echo '<option value="3">porwanie maszyny</option>';
  11. echo '<option value="4">kradzież surowców</option>';
  12. echo '<option value="5">kradzież gotówki</option>';
  13. echo '<option value="6">wysadzenie budynku</option>';
  14. echo '</select><br><br>';
  15. echo '<input type="submit" value="wykonaj!">';
  16. echo '</form>';
  17.  
  18. }
  19. ?>


  1. (...)
  2. <script language='javascript'>
  3. function funkcja(){
  4. fm.lol.value += '<? $a = 1; $b = 2; $c = $a+$b; echo $c; ?>';
  5. }
  6. </script>
  7. <? 
  8.  
  9. sabotaz_pokaz_form();
  10.  
  11. ?>
  12. (...)



I gdy wstawię to do zwykłego pliku php (np. form.php) to śmiga dobrze...

A gdy mam 2 pliki, jeden z funkcją drugi z wyświetlaniem to nie śmiga...

Klikam na "alue" i nic sie nie dzieje... HELP

(konsola błędów: fm is not definded)
Hazel
No ten błąd mówi o tym, że powinieneś raczej zacząć stosować metodę getElementById(), bo nie widzi samej nazwy formularza.
colinQ
mam:
  1. (...)
  2. <script language='javascript'>
  3. function funkcja(form){
  4. form.gracz.value = '<? $a = szukaj_gracza(); echo $a['log']; ?>';
  5. }
  6. </script>
  7. (...)
  8. echo "<input type='text' name='gracz' readonly>";
  9. echo '<input onclick="funkcja(this.form);" type=button value=alue><br><br>';


Funkcja szukaj_gracza() wyszukuje losowego uzytk. z bazy...

I to w zasadzie działa ale:

Jak mam już 1 wyszukanego i chce wyszukać kolejnego to muszę odświeżyć stronę/ wejść na nią ponownie...

Da się zrobić tak że co kliknę "alue" to on mi ponownie wyszuka innego gracza bez odswierzania strony?
nowotny
Cytat(colinQ @ 10.02.2008, 13:28:09 ) *
Da się zrobić tak że co kliknę "alue" to on mi ponownie wyszuka innego gracza bez odswierzania strony?

Da się... ajaxem...
colinQ
JavaScript tez pewnie się da...
Hazel
Nie da się. PHP ma to do siebie, że bez odświeżania strony nic nie poradzisz w samym PHP + JS.
Musisz zaprząc AJAX, który asynchronicznie bedzie wysyłał żądanie do pliku PHP, tam zostanie wylosowany wyszukany z bazy nowy gracz, i dokładnie tak jak chcesz - bez odświeżania strony, jego dane pojawią się na stronie.
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.