Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [HTML][PHP]wyświetlanie tabeli w forularzu
Forum PHP.pl > Forum > Przedszkole
eurosoft
mam formularz w którym jest select, po wybraniu właściwego selecta chciałbym wywołać w tle kod zawarty w innym pliku a zwrócony wynik pokazać pod formularzem w formie tabeli
teraz mam tak:
  1. ......
  2. <p align="center">
  3. <form action="dodaj.php" method="post" onsubmit="return validate()";>
  4. <font color="#fcfcfc" size="2"><b>
  5. Nazwisko i imię:<br />
  6. <input type="text" name="imie_nazwisko" title="Nazwisko i Imię " value="<?php if (isset($_SESSION['login'])) echo $_SESSION['login']; ?>" /> <br>
  7. Miejsce <br />
  8. <?php
  9. echo '<select name="miejsce_pol" style="background-color:#FFFF51" onchange="this.style.backgroundColor=\'#FFFFFF\'";>';
  10. echo '<option selected=""></option>';
  11. while($nt=mysql_fetch_array($result))
  12. {
  13. echo '<option value="'.$nt['nr_low'].','.$nt['nazwa_low'].'">'.($nt['nazwa_low']).'</option>';
  14. $dane=explode(',',$_POST['miejsce_pol']);
  15. echo $dane[0];
  16. echo $dane[1];
  17. }
  18. echo '</select>';
  19. ?>
  20. <br>
  21. .......
  22. </form>
  23. //tutaj chciałbym tabelkę która sie w sumie pojawia
  24. include 'sprlow.php';
  25. .........


wstawiałem do linii
echo '<select name="miejsce_pol" style="background-color:#FFFF51" onchange="this.style.backgroundColor=\'#FFFFFF\'";>';
zmienną onchange ale przeładowuje mi forma wypełniając właściwie tabelkę lecz pozostawiając puste pola formularza

proszę o pomoc, dziękuję
peter13135
Co to znaczy ma się przeładować w tle ? Chcesz użyć ajaxa ?
Co do "znikających" wartości pól w formularzu - przecież możesz wyświetlić formularz podając w parametrze value początkową wartość formularza.
I co do tego ma zmiana koloru w onchange ?
Być może, Cię nie zrozumiałem, bo piszesz o 3 rzeczach ze sobą nie powiązanych i nie bardzo opisałeś z czym masz problem.
eurosoft
w sumie nie wiem co zastosować może i Ajaxa, ważne aby działało, zmiana koloro jest informację dla usera jakie pola sa wymagane. więc może raz jeszcze:
wybierając pole w selekcie wykonuje się kod zawarty w innym pliku w wyniku czego pod formem wyświetla się tabelka (tu jest ok), ale działa to po zastosowaniu onchange="submit();" jednak wtedy wcześniej wybrane/wpisane/zaznaczone inne pola forma resetują się do pierotnego stanu (są puste).
tak, chyba mi chodzi o przeładowanie w tle :-)
peter13135
No cóż. Da się i tak i tak. Jak chcesz w tle, to naucz się ajaxa. Polecam frameworka jQuery.
Jak chcesz bez ajaxa, to zrób tak jak pisałem w poprzednim poście.

edit:// na przyszłość pisz bardziej jednoznacznie posty, opisuj dokładnie problem i jaką chcesz otrzymać pomoc.
w swoim kodzie dałeś:
onchange="this.style.backgroundColor=\'#FFFFFF\'"
i to ma niby przeładować forma ?
eurosoft
no tak ten fragment mógł zmylić forumowiczów, poproawię się ale Ajaxa nie nauczę się teraz, a pierwotne pola forma mam puste, więc dalej ślepa uliczka, jakas większa podpowiedź?
peter13135
Cytat
a pierwotne pola forma mam puste

Hehe, że co ?
Spojrzałem w kod dokładniej. Widzę, że masz 2 pola w formularzu. Jedno to pole type="text" i tutaj masz wartość ustawioną wartość początkową.
W polu select również masz ustawioną wartość początkową (selected=""). Szkoda tylko, że nic Ci to nie daje... bo pierwszy option dla selecta jest zaznaczony domyślnie.
Proponuję to wywalić, a wstawić go do tego optiona który był wybrany przez 'wysyłającego formularz".
Widzę, że ciężko u Ciebie z PHP. więc dam Ci prawię gotowca:
  1. while(...)
  2. {
  3. echo '<option ' .($_POST['twójselect']== {value z tego optiona} ? 'SELECTED=""' : '' ) . ' value="tutaj value">tutaj Twój text</option>'
  4. }



Dodatkowo. Twój kod jest bardzo brudny. Po pierwsze, jak początek formularza wyświetlasz bez użycia PHP. to czemu i tego :
  1. echo '<select name="miejsce_pol" style="background-color:#FFFF51" onchange="this.style.backgroundColor=\'#FFFFFF\'";>';
  2. echo '<option selected=""></option>';

nie wyświetlisz samym htmlem ?

Dalej... Html przewiduje, ze po </option> będzie następny znacznik <option> lub koniec listy rozwijanej czyli </select>. Zobacz jak jest u Ciebie.
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.