<select> - czy można odczytać wybór?

Dział poświęcony JavaScriptowi - tworzeniu dynamicznym stron WWW.
neytiri
Bywalec
Bywalec
Posty: 33
Dołączył(a): piątek, 2 marca 2012, 01:10

Re: <select> - czy można odczytać wybór?

Post przez neytiri »

Może pokażę Ci strukturę dokumentu

Code: Zaznacz cały

<fieldset width=50%>
<legend> 
Edycja adresów użytkownika : 
</legend>
<div class="edycja">

<table>
<select > z onchange i funkcją
</table>

</div>

<div id="tekst" >
<table>
pokazuje dane z bazy i wszystko jest ok
</table>
</div>

</fieldset>
I jak zostanie wywołana funkcja na onchange to niestety pod spodem ładuje się wszystjo jeszcze raz. A ja chciałabym, żeby tylko ten div z id="tekst " reagował.
Czyli na razie po spodem pojawia mi się kolejny select z tabelką, tak jest za pierwszym razem. Potem mam na stronie już dwa selecty i tabelę z danymi.
W końcu zrobiłam to w oparciu o ten obiekt XHR .
Co do onchange to funkcję zrobiłam zgodnie z lekcję z ajaxa.

W metodzie open podaje swój dość skomplikowany adres z parametrami i jest ok. Dane są prawidłowo pobierane z bazy.
XHR.open("GET","admin.php?dz=admin/klient&op=edit&typ=adres&id=102&rodzaj_adr="+str,true);

Wszystko robię trochę na czuja, bo jeszcze nie zbyt pewnie się czuje w tej dynamice :).
Może masz jakiś pomysł co może być powodem tego ponownego załadowania całości?
Morfidon
Administrator
Administrator
Posty: 1332
Dołączył(a): wtorek, 5 sierpnia 2008, 21:48
Contact:

Re: <select> - czy można odczytać wybór?

Post przez Morfidon »

Powodem tego, że ładuje się ponownie całość jest na pewno to, że ładujesz ponownie całość, innego powodu być nie może ;) wiem że to trochę głupio brzmi, ale tak jest. Musisz coś źle zwracać w pliku .php

"dz=admin/klient"

nie jestem pewien czy "/" przejdzie tak gładko nie testowałem tego.
neytiri
Bywalec
Bywalec
Posty: 33
Dołączył(a): piątek, 2 marca 2012, 01:10

Re: <select> - czy można odczytać wybór?

Post przez neytiri »

Dobra rzeczywiście chyba nie nierozumiem gdzie mi wraca.
Czyli tak jak ja to rozumiem, to przekazuje zmienną przez url , metodą get. W php obrabiam dane, to teraz w jaki sposób dać znać do szablonu, która część ma wyświetlić, czy to wszystko to kwestia odpowiedniego ustawienia - tak jak w Twoim kursie tłumaczysz to z ta podpowiedzią?

Czyli to nie jest tak, że jak dam id do div'a to tylko ten diva będzie się odświeżał przy zmianie danych - dlaczego się wczytuje wszystko od początku?

Code: Zaznacz cały

if (XHR.readyState==4 && XHR.status==200)
    {
    document.getElementById("id_diva").innerHTML=XHR.responseText;
    }
Morfidon
Administrator
Administrator
Posty: 1332
Dołączył(a): wtorek, 5 sierpnia 2008, 21:48
Contact:

Re: <select> - czy można odczytać wybór?

Post przez Morfidon »

Nie powinno się wczytywać wszystko od początku. Wczyta się dokładnie to co zostanie zwrócone w pliku .php przy pomocy echo.

A może masz niepoprawnie zamknięte tagi html?

Sprawdź:
http://validator.w3.org/#validate_by_input
neytiri
Bywalec
Bywalec
Posty: 33
Dołączył(a): piątek, 2 marca 2012, 01:10

Re: <select> - czy można odczytać wybór?

Post przez neytiri »

A może to jednak smarty coś mieszają w tym wyświetlaniu?
Morfidon
Administrator
Administrator
Posty: 1332
Dołączył(a): wtorek, 5 sierpnia 2008, 21:48
Contact:

Re: <select> - czy można odczytać wybór?

Post przez Morfidon »

Nie powinno mieszać. Videokurs.pl korzysta ze smarty, zapytanie ajaxowe to osobna sprawa.
neytiri
Bywalec
Bywalec
Posty: 33
Dołączył(a): piątek, 2 marca 2012, 01:10

Re: <select> - czy można odczytać wybór?

Post przez neytiri »

Czyli jak przekazuję daną i php przygotowuje mi tablicę z danymi z których korzysta smarty to jest ok?
Plik tpl ma 3 if - pokazuje mi jakieś formatyki w zależności od wyboru klienta wcześniej, może to jakoś wpływa?

Nie mogę znaleźć miejsca, która może powodować powtórne wczytanie , najdziwniejsze, że tak się dzieje tylko za pierwszym razem, tzn. najpierw mam formatkę bez danych. Wybieram opcje z selecta i wszystko skacze(czyli jest przeładowanie), i pojawia się dodatkowy footer. Potem już moge zmieniać sobie opcje i już jest wtedy ok, choć użytkownik widzi ciągle dwa footery.

Masz jakiś pomysł co może być nie tak?

Dziwi mnie te ponowne wczytanie - co dopowiada za załadowanie ponowne strony?
Morfidon
Administrator
Administrator
Posty: 1332
Dołączył(a): wtorek, 5 sierpnia 2008, 21:48
Contact:

Re: <select> - czy można odczytać wybór?

Post przez Morfidon »

Nie no, jak łączysz się przy pomocy ajaxa z plikiem .php to w tym pliku .php z którym się łączysz nie powinnaś używać Smarty.
neytiri
Bywalec
Bywalec
Posty: 33
Dołączył(a): piątek, 2 marca 2012, 01:10

Re: <select> - czy można odczytać wybór?

Post przez neytiri »

To chyba rzeczywiście coś z tymi smarty jest nie tak.

Przerobiłam wszystko na plik.html i plik2.php i jest ok, header i footer nie powtarzają się !
Niestety jak to przenoszę do smarty to kicha - już usnęłam cały kod z php prócz części, które realizuje pobranie danych z bazy i wyświetlenie ich. W pliku html to zgodnie z Twoją lekcją jest tak jak pokazywałeś , ale w tym smarty nie wiem co powoduje te ponowne wyświetlenie head'a i foot'a.
Najdziwniejsze w tym wszystkim jest to,że jak patrzę na źródło strony to tam nie ma podwójnego h i f!

Czy używałeś ajax'a z tym smarty ?
Może masz jakiś przykład do przetestowania dla mnie, bo już sama nie wiem co robić.
neytiri
Bywalec
Bywalec
Posty: 33
Dołączył(a): piątek, 2 marca 2012, 01:10

Re: <select> - czy można odczytać wybór?

Post przez neytiri »

A i jeszcze jedno po odświeżeniu znika dodatkowo wyświetlana część strony, no i wtedy jak wybiorę coś z selecta znowu się pojawia, a jak to robię bez odświeżania do już za drugim razem itd jest ok, tyle że widać powielone te części - head, footer i select.
Post Reply