Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [jQuery] Select i przekazanie wartości do pliku php
Forum PHP.pl > Forum > XML, AJAX
einter-project
Witam

Napisałem taki kod:

  1.  
  2. .....
  3. <select class="inputSelectGray" name="formStyle">
  4. <optgroup label="Pojedyńczy wykres">
  5. <option value="single_series_charts/FCF_Column2D.swf">Column 2D</option>
  6. <option value="single_series_charts/FCF_Column3D.swf">Column 3D</option>
  7. <option value="single_series_charts/FCF_Line.swf">Line 2D</option>
  8. <option value="single_series_charts/FCF_Area2D.swf">Area 2D</option>
  9. <option value="single_series_charts/FCF_Bar2D.swf">Bar 2D</option>
  10. <option value="single_series_charts/FCF_Pie2D.swf">Pie 2D</option>
  11. <option value="single_series_charts/FCF_Pie3D.swf">Pie 3D</option>
  12. <option value="single_series_charts/FCF_Doughnut2D.swf">Doughnut 2D</option>
  13. ......
  14. <script type="text/javascript">
  15. $(document).ready(function(){
  16. var formStyle = "";
  17.  
  18. $("[name=formStyle]").change(function(){
  19. $("select option:selected").each(function () {
  20. formStyle = $(this).val();
  21. });
  22. });
  23.  
  24. $.ajax({
  25. url: "modulesALL/ranking/preview.php?style="+formStyle,
  26. success: function(results) { $('#preview').html(results); }
  27. });
  28. });


PLIK PHP
  1. $_GET['style'] = isset($_GET['style']) ? $_GET['style'] : '';
  2.  
  3. include("../../../class/fusionCharts/includes/fusionCharts.php");
  4.  
  5. if($_GET['style'] == false){
  6. $_GET['style'] = 'single_series_charts/FCF_Column3D.swf';
  7. }
  8.  
  9. print renderChartHTML($_SESSION['DB_DOMAIN_ALL']."class/fusionCharts/flash/".$_GET['style'], $_SESSION['DB_DOMAIN_ALL']."class/fusionCharts/flash/single_series_charts/schemat.xml", "", "myFirst", 450, 450)
  10. ?>


I teraz chciałbym metodą get przekazać wybraną wartość do pliku php bez odświerzenia strony.

Może ktoś mnie naprowadzić co robię nie tak?

Pozdrawiam
lukesh
Jeśli chcesz coś przesłać jakąś wartość za pomocą .ajax, to powinieneś uruchomić tę funkcję w momencie, kiedy ta wartość istnieje, a nie kiedy ładuje się strony i wartość jest pusta.

  1. $("select option:selected").each(function () {
  2. formStyle += $(this).val() + " ";
  3. // <--- TUTAJ POWINIEN BYĆ AJAX
  4. });


Ty zrobiłeś tak, że strona się ładuje i próbuje wysłać zmienną, która w ogóle wtedy nie istnieje i tym samym nic się nie dzieje.

Poza tym, do czego Ci jest potrzebne to .each w tym skrypcie, skoro nie masz możliwości wyboru wielu pól tylko jedno?


  1. $("[name=formStyle]").change(function(){
  2. formStyle = $("select option:selected").val();
  3. // AJAX
  4. });
einter-project
Może powiem o co mi chodzi.
Chce zrobić konfiguracje fusionCharts z podglądem bez przeładowania strony. Pól formularza będzie około 20 (input, select, checbox); I teraz przy wpisaniu każdej wartości chciałem aby się zmieniał się podgląd. Czyli przy zmianie każdego pola powinno odświerzyć preview.php. Ma to sens? I jak zrobić aby przy każdej zmianie odświerzało preview.php.

Pozdrawiam
lukesh
W przypadku select i checkbox użyj $.change(). W przypadku input możesz użyć również .change() i wtedy wartość będzie wysyłana jak ktoś wyjdzie z pola (np. kliknie myszką gdzieś indziej) albo .keyup, jeśli chcesz żeby zmiany były wprowadzane po wpisaniu jednej litery, i wtedy pobierz tę wartość do zmiennej globalnej i sprawdź, czy poprzednia wartość w zmiennej jest inna i jeśli tak, wyślij dane.
Nie wiem, jak działa fusionCharts, ale jak chcesz przesyłać zmienną po każdej zmianie, to wystarczy, że zrobisz tak, jak wspomniałem.
Możesz oczywiście za każdym razem przesłać wszystkie pola, jeśli będzie to konieczne.
einter-project
Dzięki derdeczne za pomoc. Doszedłem do wniosku że jednak dam przycisk i po kliknięciu będzie odświeżał stronę.

Pozdrawiam
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.