Ho sviluppato un sistema di filtri in cui fornisce 3 opzioni come tipo di proprietà, numero di stanze e prezzo massimo. Ogni volta che selezionano le opzioni di filtro, l'utente otterrà immediatamente i risultati della ricerca. Ad esempio, se un utente ha selezionato il tipo di proprietà di Appartamento e il numero di camere come 4 e il prezzo massimo di 12000, l'utente otterrà quegli affitti il cui tipo di proprietà è l'appartamento con 4 stanze di 12000 marchi. Ho sviluppato la parte front-end con React.js e ho potuto recuperare i dati selezionati dall'utente con successo. Ho anche passato i dati ad ajax ma non ho idea di come dovrei visualizzare i risultati della ricerca in base al valore filtrato fornito dall'utente senza caricare la pagina.Come posso visualizzare i risultati della ricerca in base al valore filtrato fornito dall'utente?
Ajax codice
$.ajax({
type: 'GET',
url: '/filter/space/',
data{property:propertySelectedValue, room:roomSelectedValue, price:maxPrice},
success: function(data){
console.log(data['fields']);
},
error: function(XMLHttpRequest, textStatus, errorThrown){
console.error("Status: " + textStatus); alert("Error: " + errorThrown);
},
});
Views.py
class FilterSpace(View):
def get(self,request,*args,**kwargs):
property = request.GET.get('property',None)
room = request.GET.get('room', None)
price = request.GET.get('price', None)
rental = Rental.objects.all()
if room:
rental = rental.filter(room=room)
print('rental',rental)
if price:
rental = rental.filter(price__lte=price)
if property:
rental = rental.filter(property=property)
rental_json = serializers.serialize('json',rental)
print('rental_json',rental_json)
return HttpResponse(rental_json,content_type="application/json")
Possibile duplicato di [Come visualizzare un elenco di utenti che utilizzano AJAX Django che vengono aggiornati aggiungendo nuovi utenti dalla pagina di amministrazione] (http://stackoverflow.com/questions/35333163/how-to-display-list-of- user-using-ajax-django-that-get-updated-while-adding-new) – Sayse
spiega: senza caricamento della pagina. Cosa cerchi di risolvere? –
Hai mai pensato di inviare la richiesta al back-end tramite un'API? Dovresti inviare la richiesta, ricevere la risposta e aggiornare la pagina in modo corrispondente. In questo modo non è necessario ricaricare la pagina. – elena