Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Sugestia (podpowiadacz) + input zależny od wyboru., Jak połączyć sugestie z dodatkowym inputem?
casperii
post 9.01.2015, 21:54:26
Post #1





Grupa: Zarejestrowani
Postów: 681
Pomógł: 28
Dołączył: 14.08.2014

Ostrzeżenie: (0%)
-----


Witam, mam następujący problem związany z połączeniem sugestii z dodatkowym inputem.
Skrypt sugestii pochodzi ze strony link

  1. function suggest(inputString){
  2. if(inputString.length == 0) {
  3. $('#suggestions').fadeOut();
  4. } else {
  5. $('#country').addClass('load');
  6. $.post("autosuggest.php", {queryString: ""+inputString+""}, function(data){
  7. if(data.length >0) {
  8. $('#suggestions').fadeIn();
  9. $('#suggestionsList').html(data);
  10. $('#country').removeClass('load');
  11. }
  12. });
  13. }
  14. }
  15.  
  16. function fill(thisValue) {
  17. $('#country').val(thisValue);
  18. setTimeout("$('#suggestions').fadeOut();", 600);
  19. }

Jak do tej pory tu wszystko działa ok.

Następnie posiadam drugi skrypt, który także działa link (już swojego autorstwa) i nie wiem jak to powiązać z tym pierwszym.

  1. <script type="text/javascript">
  2. $(document).ready(function() {
  3.  
  4. $('#test').on('keyup', function (){
  5. var input = $('input.test').val();
  6. $.getJSON('ajaxPostCode.php', {input:input}, function(data) {
  7. $('input.inputField').val(data.inputValue);
  8. alert("x" + input);
  9. });
  10. });
  11.  
  12. });
  13. </script>
  14.  
  15. <input class="test" id="test" type="text"><br>
  16. <input class="inputField" type="text" />


Na chwilę obecną po połączeniu tych dwóch skryptu to trochę to kuleje, wpisuje w input który wyświetla wyniki (podpowiada) np nazwę miasta "Konin" i jeśli do samego końca wpiszę tą nazwę to w polu kod pocztowy mi się pojawi odpowiedni kod do tego miasta, lecz jeśli wybiorę z listy tą miejscowość to już nie pojawi mi się w polu kod pocztowy.

Za wynik wyświetlania podpowiedzi odpowiedzialny jest ten fragment kodu z pierwszego skryptu:

  1. echo '<li onClick="fill(\''.addslashes($result->miasto).'\');">'.$result->miasto.'</li>';


Liczę na wasze wskazówki.
Go to the top of the page
+Quote Post
pitu
post 9.01.2015, 22:30:16
Post #2





Grupa: Zarejestrowani
Postów: 476
Pomógł: 96
Dołączył: 10.04.2008
Skąd: Koszalin

Ostrzeżenie: (0%)
-----


Pod pole z miastem podpięty masz event "keyup", przy wyborze sugestii nie jest on odpalany dlatego nie wykonuje się część wysyłająca request do ajaxPostCode.php.


--------------------
HTML/CSS/JS: jsfiddle
SQL: sqlfiddle
Go to the top of the page
+Quote Post
casperii
post 10.01.2015, 21:26:19
Post #3





Grupa: Zarejestrowani
Postów: 681
Pomógł: 28
Dołączył: 14.08.2014

Ostrzeżenie: (0%)
-----


Przerobiłem trochę kod:

  1. function suggest(inputString){
  2. if(inputString.length == 0) {
  3. $('#suggestions').fadeOut();
  4. } else {
  5. $('#city').addClass('load');
  6. $.post("ajaxCitySearch.php", {queryString: ""+inputString+""}, function(data){
  7. if(data.length >0) {
  8. $('#suggestions').fadeIn();
  9. $('#suggestionsList').html(data);
  10. $('#city').removeClass('load');
  11. }
  12. });
  13. }
  14. }
  15.  
  16. function fill(thisValue) {
  17. $('#city').val(thisValue);
  18. setTimeout("$('#suggestions').fadeOut();", 600);
  19. $.getJSON('ajaxPostCode.php', {input:thisValue}, function(data) {
  20. $('input.inputField').val(data.inputValue);
  21. });
  22. }
  23.  
  24. <div id="suggest" style="margin-left:150px;">
  25. Miasto: <input type="text" name="city" id="city" value="" onkeyup="suggest(this.value);" onblur="fill();" autocomplete="off">
  26. <div class="suggestionsBox" id="suggestions">
  27. <div class="suggestionList" id="suggestionsList"></div>
  28. </div>
  29. </div>
  30. <br><br>
  31. Kod-pocztowy: <input class="inputField" type="text" />


Teraz wygląda tak ,że jak wybiorę z listy z podpowiedzi miasto, wstawia mi kod w input - czyli jest ok. Ale musi jeszcze być tak, że jak ktoś wpiszę miasto a nie wybierze z listy - bo i przed takimi się trzeba zabezpieczyć. Co prawda na obecną chwilę wygląda tak , że user nie ma możliwości na upartego wpisywania w input miasta bo nazwa mu zniknie. Zresztą link tutaj

Aha no i konsola wywala błąd:
Uncaught TypeError: Cannot read property 'inputValue' of null

Ten post edytował casperii 10.01.2015, 21:30:33
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 18.07.2025 - 02:39