Visualizzazione dei risultati da 1 a 5 su 5

Hybrid View

  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2013
    Messaggi
    2

    [jQuery] ordine richiamo funzioni

    Ciao a tutti, ho la seguente funzione jQuery:

    codice:
    $('#nearStore').bind('click',function(){
    	if(jQuery('#nearStore').attr('disabled') === 'disabled')
    		return;
    	jQuery('#searchResult').empty();
    	jQuery('.DHead').remove();
    	$('#msgBox').text("");
    	$('#msgBox').removeClass('success').removeClass('error');
    	jQuery('#searchResult').append("<ul class='SearchR'></ul>");
    	var geocoder = new google.maps.Geocoder();
        var name = jQuery('#tbName').val();
    	var radian = jQuery('#selRadius').val();
    	var CatId = 0;
    	if(jQuery('#selCategory').length > 0){
    		CatId = jQuery('#selCategory').val();
    		jQuery('#hdfOCatId').val(CatId);
    	}else{
    		CatId = 0;
    		jQuery('#hdfOCatId').val(0);
    	}		
    	if(jQuery.trim(name).length <= 0){
    		jQuery('#tbName').addClass('error_cls');
    		jQuery('#tbName').focus();
    		$('#msgBox').text("Inserisci il nome per la ricerca.");
    		$('#msgBox').removeClass('success').addClass('error').fadeOut(300).fadeIn(300);
    	}else if(jQuery.trim(radian).length <= 0){
    		jQuery('#selRadius').addClass('error_cls');
    		jQuery('#selRadius').focus();
    		$('#msgBox').text("Seleziona il raggio.");
    		$('#msgBox').removeClass('success').addClass('error').fadeOut(300).fadeIn(300);
    	}else{
    		jQuery('#tbName,#selRadius').removeClass('error_cls');
    		//CERCO NEGOZIO IN BASE AL NOME O ALLA PAROLA CHIAVE
    		jQuery.ajax({
    			type: "POST",
    			url: "ajax/ajx_manageStore.php",
    			data: "Method=SearchSelect&tbName=" + name,
    			success: function(msg){
    				if(msg == ""){
    					jQuery('#tbName').addClass('error_cls');
    					jQuery('#tbName').focus();
    					$('#msgBox').text("Nessun negozio trovato con i criteri impostati");
    					$('#msgBox').removeClass('success').addClass('error').fadeOut(300).fadeIn(300);
    				}else{
    					//STORE TROVATO, CERCO INDIRIZZO E METTO NELLA VARIABILE address			
    //PUNTO 1
    					$('#tbPlace').attr('value',msg);
    				}
    			}
    		});
    //PUNTO 2
    		address=$('#tbPlace').attr('value');
    		geocoder.geocode( { 'address': address}, function(results, status) {
    		if (status == google.maps.GeocoderStatus.OK) {
    			var latitude = results[0].geometry.location.lat();
    			var longitude = results[0].geometry.location.lng();            
    	
    			if(radian == null || radian == ''){
    				radian = 2;
    			}
    			var RadType = (jQuery('input:radio[name=radius]:checked').val()) ? jQuery('input:radio[name=radius]:checked').val() : "Kms";
    			RadType = (RadType == 'KM') ? 'Kms' : 'Miles';
    			radian = (RadType === 'Miles') ? Math.round(radian*1.609) : radian;
    			jQuery('#nearStore').attr('disabled', 'disabled');
    				SearchStore(latitude, longitude, radian, RadType, CatId);                                
    			}else if(status == google.maps.GeocoderStatus.ZERO_RESULTS){  
    				jQuery('.SearchR li').remove();  
    				jQuery('.SearchR').empty();
    			}
    		});
    	}
    });
    Perché esegue prima il "Punto 2" del "Punto 1"?
    Infatti mi crea problemi perchè la variabile address è ancora vuota..
    Se ri-eseguo la funzione una seconda volta invece funziona tranquillamente perchè il campo #tbPlace lo ritrova già popolato dall'esecuzione precedente...
    Ultima modifica di swim89; 20-10-2013 a 11:23

  2. #2
    Perché non rendi leggibile questo codice?

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2013
    Messaggi
    2
    Eccolo leggibile...scusate ma dovevo capire come mai non indentava...

  4. #4
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Oltretutto o usi questo $ selettore per JQUERY oppure usi questo jQuery usare entrambi potrebbe creare problemi o malfunzionamenti, del poco che ho capito sembra la sagra del copia-incolla è una mia sensazione?

    P.S. Complimenti per il titolo (chiaro, preciso, esaustivo)
    Ultima modifica di cavicchiandrea; 20-10-2013 a 11:52
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  5. #5
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    cioe' ti aspetteresti il risultato di una richiesta asincrona prima di quello che nel codice segue questa richiesta?
    se si' potresti non avere le idee troppo chiare riguardo le richieste (non per niente!) asincrone
    tutto quello che va eseguito dopo aver ricevuto una risposta va nel success/complete/done della richiesta

    una possibile alternativa, che ti cito giusto per completezza, e' settare async:false trai settaggi di $.ajax()
    che di fatto blocca il browser finche' non arriva una risposta
    ciao

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.