Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Wczytywanie inputa do selecta
Forum PHP.pl > Forum > XML, AJAX
dag1980
Witam, Powiedźcie mi jak robić za pomocą ajax'a taki efekt: Mam pole input i po kliknięciu na buttona, zawartośc tego inputa dodawana jest do pola select.
Znalazłem skrypt który mniej więcej tak działa tylko że na dwóch selectach Przykład
Pomożecie...
#luq
A w jakim celu chcesz tu Ajax`a zastosować?

Teoretycznie musisz to zrobić tak:
- zdarzenie kliknięcia na button wywołuje funkcję, która dodaje do elementu select stworzony w skrypcie nowy element option z danych z input następnie czyści value tegoż inputa...

W jQuery to jest 5 min pisania, ale jeśli piszesz taki topic to podejrzewam, że czystego JS`a nie znasz. Możesz ten skrypt napisać z wykorzystaniem jQ, znajdź jakiś kursik otworzysz manual i w godzine powinieneś do tego dojść jak to się obsługuję, na przyszłość poczytaj o gołym JavaScripti`ie i zacznij się go uczyć.
dag1980
Chce ażeby to działało bez przeładowania strony. Ma to wyglądać w ten sposób ze osoba wpisuje coś w inputa, klika na buttona "dodaj" i on dodaje zawartość inputa do selecta, i może wykonać ta operacje kilka krotnie, więc beż sensu by było gdyby za każdym razem przeładowywała się strona.

Wykombinowałem takie coś

  1. <!DOCTYPE html>
  2.  
  3. p { color:blue; margin:8px; }
  4. </style>
  5. <script src="http://code.jquery.com/jquery-latest.js"></script>
  6. jQuery.noConflict();
  7. jQuery().ready(function() {
  8. jQuery("#add").click(function () {
  9. var value = jQuery("#tekst").val();
  10. //jQuery("select").text(value);
  11. jQuery("#select1").append(jQuery("#tekst").val() );
  12. /// return !jQuery('#select1 option:selected').appendTo('#select1');
  13. // jQuery("p").text(value);
  14. });
  15. });
  16.  
  17. </head>
  18. <input type="text" id="tekst" value="text"/>
  19. <a href="#" id="add">add &gt;&gt;</a>
  20. <p></p>
  21.  
  22. <div>
  23. <select multiple id="select1">
  24. <option value="1">Option 1</option>
  25.  
  26. <option value="2">Option 2</option>
  27. <option value="3">Option 3</option>
  28. <option value="4">Option 4</option>
  29. </select>
  30. </div>
  31.  
  32. </body>
  33. </html>
  34.  


Dodaje mi nową pozycje ale przy następnym razie dołącza tekst do ostatniej pozycji.

Tak to mniej więcej wygląda po dodaniu trzech słów 'text'
Option 1
Option 2
Option 3
Option 4
texttexttext
#luq
Mylisz pojęcia... Ty potrzebujesz JS`a a nie Ajax`a. Czym dokładnie jest JavaScript możesz przeczytać na moim blogu, dokładniej tutaj

Zmierzając do meritum. Twój kod JavaScript powinien wyglądać tak:
Kod
$(document).ready(function(){
    $( '#add' ).click(function () {
        var value =  $( '#tekst' ).val();
        $( '#select1' ).append( '<option value="">' + value + '</option>' );

                // pytanie co chcesz miec w value?
                // Pewno kolejna liczbe, jesli tak to chyba nie bedziesz mial z tym problemu
    });
});


Twój problem polegał na dodaniu tekstu do tego selecta a nie nowego elementu option.

@ Edit

Aha, na przyszłość, polecam się zaopatrzyć się w plugina do Firefoxa o nazwie Firebug, genialne narzędzie przy pracy z JavaScriptem jak i zresztą kilku innych spraw. Gdybyś go miał w sekund 5 wiedział być czemu Twój kod nie śmiga.
dag1980
Dokładnie o to chodziło, Jak widać jestem początkujący w tej dziedzinie, wiedziałem gdzie dzwoni ale nie wiedziałem w jakim kościele.
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.