Vous n'êtes pas identifié(e).
bonjour
voila mon probleme
j'ai le template suivant
<table width="100%" border="1" style="border: 0.5px;" cellspacing="0" cellpadding="0" >
<div>
<tr bgcolor="dddddd">
<td width="160" <TT><strong>Propriete </strong></TT></td>
<td width="120" <TT><strong>Temperature </strong></TT></td>
<td width="120" <TT><strong>Valeur min </strong></TT></td>
<td width="120" <TT><strong>Valeur max</strong></TT></td>
<td width="120" <TT><strong>Unite</strong></TT></td>
</tr>
<tr>
<form action="{% url upload %}" method="post">
<p>
<td width="160" <TT><INPUT type="durete Vickers" value="durete Vickers" name="propriete" onClick="this.form.submit()"/></TT>
</td>
<td width="120"<TT><select name="topic" id= "id_topic"></TT>
<optgroup label="degres">
<option selected="selected" value="0">-- select --</option>
<option value="100">100</option>
<option value="200">200</option>
<option value="300">300</option>
<option value="400">400</option>
<option value="500">500</option>
</optgroup>
</select>
</td>
</p>
<td width="120" <TT> 14 </TT> </td> {# valeur min #}
<td width="120" <TT> 19 </TT> </td> {# valeur max #}
<td width="120" <TT> GPa </TT></td>
</form>
lorsque je clique sur une des temperatures de la liste , ma fonction (du module views) lit un fichier excel et renvoie deux valeurs (val min et val max) correspondant a la selection
comment renvoyer ces valeurs vers le script .JS (return json ??) pour ensuite remplacer valeur min et valeur max sans rafraichissement de la page ?
Hors ligne
Salut
Voici comment tu devrais procéder :
1. Utiliser jQuery
2. Pour chaque temperature, créer une div et lui affecter en jquery une
fonction sur le click.
ex : $('div.temperature').on('click', function() { // ici javascript
pour aller chercher le JSON });
3. Cette fonction javascript fait une requete sur ta vue qui renvoie les
valeurs en JSON
4. A la reception du JSON, la fonction appelle une fonction 'callback'
qui met a jour le contenu des divs min/max avec le JSON recu
Voila je pense qu'il faut que tu te familiarises avec jquery et json pour
mieux comprendre.
un tuto ici : http://docs.jquery.com/Tutorials:Getting_Started_with_jQuery
Il y a également pour info http://www.dajaxproject.com/ qui permet de te
simplifier l'ajax avec Django... ca peut etre pratique.
a+
Julien
Le 19 janvier 2012 12:01, sesame <pat.100 _AT_ hotmail.fr> a écrit :
> bonjour
>
> voila mon probleme
>
> j'ai le template suivant
>
> <table width="100%" border="1" style="border: 0.5px;" cellspacing="0"
> cellpadding="0" >
> <div>
> <tr bgcolor="dddddd">
> <td width="160" <TT><strong>Propriete </strong></TT></td>
> <td width="120" <TT><strong>Temperature </strong></TT></td>
> <td width="120" <TT><strong>Valeur min </strong></TT></td>
> <td width="120" <TT><strong>Valeur max</strong></TT></td>
> <td width="120" <TT><strong>Unite</strong></TT></td>
>
> </tr>
>
> <tr>
>
> <form action="{% url upload %}" method="post">
> <p>
> <td width="160" <TT><INPUT type="durete Vickers" value="durete Vickers"
> name="propriete" onClick="this.form.submit()"/></TT>
> </td>
> <td width="120"<TT><select name="topic" id= "id_topic"></TT>
> <optgroup label="degres">
> <option selected="selected" value="0">-- select --</option>
> <option value="100">100</option>
> <option value="200">200</option>
> <option value="300">300</option>
> <option value="400">400</option>
> <option value="500">500</option>
> </optgroup>
> </select>
> </td>
> </p>
>
> <td width="120" <TT> 14 </TT> </td> {# valeur min #}
> <td width="120" <TT> 19 </TT> </td> {# valeur max #}
> <td width="120" <TT> GPa </TT></td>
>
> </form>
>
> lorsque je clique sur une des temperatures de la liste , ma fonction (du
> module views) lit un fichier excel et renvoie deux valeurs (val min et val
> max) correspondant a la selection
>
> comment renvoyer ces valeurs vers le script .JS (return json ??) pour
> ensuite remplacer valeur min et valeur max sans rafraichissement de la page
> ?
> _______________________________________________
> django mailing list
> django _AT_ lists.afpy.org
> http://lists.afpy.org/mailman/listinfo/django
>
Hors ligne
merci de ta reponse
mais comment avec la vue ce fait le retour des valeurs ?
Hors ligne
>
> mais comment avec la vue ce fait le retour des valeurs ?
je ne comprends pas cette question
je traduis par : "comment la vue fait pour retourner les valeurs" ?
la vue renvoie simplement le json avec le bon content-type
de mémoire :
datas = {"min": 18, "max": 65}
lejson = simplejson.dumps(datas)
return HttpResponse(lejson, mimetype='application/json')
Le 19 janvier 2012 13:21, sesame <pat.100 _AT_ hotmail.fr> a écrit :
> merci de ta reponse
> mais comment avec la vue ce fait le retour des valeurs ?
> _______________________________________________
> django mailing list
> django _AT_ lists.afpy.org
> http://lists.afpy.org/mailman/listinfo/django
>
Hors ligne
c'etais bien cela, encore merci
j'avais déja ecrit dans views.py :
from django.utils import simplejson
c'est un debut..:)
Hors ligne
j'ai oublié un detail..
je souhaite qu'en cliquant sur une temperature de la liste deroulante cela remplace (en même temps) valeur min et valeur max par val min et val max renvoyées par la fonction (module views)
on('click', function() doit agir sur les deux temperatures
Hors ligne
C'est exactement le même principe
Hors ligne
Sinon,
si tu as pas trop de résultats possibles, tu peux peut etre faire quelque
chose de plus simple :
tu précharges dans ta page tous les resultats dans une variable javascript
(json passé par la vue):
temperatures = {
25:{min:12, max:34},
26:{min:11, max:38},
}
comme ca plus besoin d'ajax, ton jquery va juste chercher les bonnes infos
dans la variable javascript 'temperatures'.
my 2 cents
ju
Le 20 janvier 2012 08:53, Vincent HOTZ <hotzvincent _AT_ gmail.com> a écrit :
> C'est exactement le même principe
> _______________________________________________
> django mailing list
> django _AT_ lists.afpy.org
> http://lists.afpy.org/mailman/listinfo/django
>
Hors ligne
Effectivement c'est peut être ce qui a de plus robuste et simple, pas besoins de gestion d'erreurs etc
Hors ligne
oui mais..
j'aurai peut etre 100 fichiers excel et je ne connais pas le contenu a l'avance
chaque utilisateur aurait a charge de le creer en fonction de ses resultats experimentaux
Hors ligne
je suis pas sur d'avoir compris
donc au lieu d'aller chercher deux valeurs min et max
je vais lire le contenu total du fichier..et apres avec jquery, aller chercher dans la variable javascript les valeurs correspondant a celle selectionnee dans la liste deroulante pour aller les inserer au bon endroit..
(au fait mon template n'est pas en javascript..)
Hors ligne
C'est une idée, mais si tu as deja les valeurs à l'avance, tu peux, dans
ton template html, ajouter ceci :
<script>
var temperatures = {{ temperatures_json }};
</script>
temperatures_json serait une variable envoyée par ta vue à ton template.
du coup ta fonction click n'aurait plus qu'a chercher dans ces donnees deja
présentes dans la page et mettre a jour les deux résultats.
ex :
$('select.temperatures').on('click', function() {
var values = temperatures[$(this).val()];
$('div.tmax').html(values.max);
$('div.tmin').html(values.min);
});
On s'ecarte de django donc je m'arreterai la sur le javascript.
il faut que tu lises au moins le 'getting started with jquery'
++
ju
Le 20 janvier 2012 13:56, sesame <pat.100 _AT_ hotmail.fr> a écrit :
> je suis pas sur d'avoir compris
> donc au lieu d'aller chercher deux valeurs min et max
> je vais lire le contenu total du fichier..et apres avec jquery, aller
> chercher dans la variable javascript les valeurs correspondant a celle
> selectionnee dans la liste deroulante pour aller les inserer au bon
> endroit..
> (au fait mon template n'est pas en javascript..)
> _______________________________________________
> django mailing list
> django _AT_ lists.afpy.org
> http://lists.afpy.org/mailman/listinfo/django
>
Hors ligne
Oui un template c'est de l'html, mais pas que. Tu peux aussi y écrire du Javascript (et heureusement) et utiliser les mêmes templates tags/filters (boucle for etc) pour générer cette variable. Ou tu la génère coté serveur que tu passe au template sous forme de string si tu veux... tout est possible, faut juste que ton script est accès à la variable avec les valeurs...
Donc, si lors de l'affichage du formulaire tu peut déjà récupérer les valeurs possibles tu créer une variable js (associative array) dans ton script js. Bien sur cet array doit être construit avec les valeurs que peut prendre le champ du formulaire pour récupérer ensuite les bonnes valeurs correspondantes et les afficher (ou autres) avec js/jQuery
Quand tu tape sur Google associative array demistified tu tombe sur un très bon tuto
Au choix, AJAX ou cette technique
(en espérant que les explications sont compréhensibles xD)
EDIT : Grilled x)
Dernière modification par Vincent (20-01-2012 22:14:40)
Hors ligne
merci beaucoup de votre aide
Hors ligne
return HttpResponse(json_datas, mimetype= 'application/json') de la vue renvoie un message
voulez vous ouvrir ou enregistrer ce fichier ??
je sais pas comment recuperer la variable dans le template..
(j'ai pas encore assez lu le tuto de jquery...peut etre)
comment passer json au template..
Hors ligne
En fait à l'aide de jQuery tu fait une requête Http (comme quand un utilisateur/visiteur charge une page) ou tu peux y mettre des variables via GET ou POST que ta vue récupérera, et répondra par ton Json, que tu traite par la suite toujours via jQuery.
Pour debugger : firebug panneau js/réseau.
Hors ligne
je passe pourtant par <form action="{% url upload %}" method="post"> qui ensuite charge le code de la vue
Hors ligne
Oui mais là c'est l'url utilisée lors de lenvoi du formulaire
Il faut que tu lance cette requête à l'aide de Javascript/jQuery lorsque un champ est renseigné/une valeur selectionnée dans un select.
Hors ligne
faut donc qu je reecrive le code du template..
Hors ligne
Bah non, tu remet l'url vers laquelle t'envoyais ton formulaire normalement et après tu fais le javascript.
Un bon tuto pris au hasard : http://webcloud.se/log/AJAX-in-Django-with-jQuery/
Il y a également un passage qui indique que dans la doc (https://docs.djangoproject.com/en/dev/r … csrf/#ajax) tu trouvera un bout de code jQuery pour ne pas avoir d'erreurs avec la protection CSRF
Reprends les indications de Julien (post #2), des tutos, google, du café et du courage et c'est bon
Dernière modification par Vincent (28-01-2012 12:33:45)
Hors ligne
encore merci, je vais m'accrocher..
Hors ligne
The Chicago Bears up until matrix Sunday were arguably the most scrutinized 7-3 bandeau in the NFL. In these times at 8-3, most of us who questioned the Bears assist to snuff out the fuck up, on the side of this week anyway.
The consider on the Bears was that they weren't on account of reputable, that they were beating up of sub rotten teams, and that they got encouraging to materialization a thrash up Dolphins team. Cutler hadn't to the correspondence literature been unbelievable, but in some begun the Bears were nice games. It wasn't until they knocked off restrictive of the hottest teams and players in the NFL that Bears are in any vocation getting their respect.
Heading into the games as 3.5 result underdogs the Bears and Jay Cutler handled the Philadelphia Eagles proving to the siesta of the NFL and their separation that they are in the lecture of the duration of tangible at 8-3 in kasyno, an individual would referee think up that should den without saying, but it doesn't. The Bears had to be victorious in that match to muzzle their haters. The Eagles are legit core, Michael Vick was playing and also any QB can to all intents attainment and the Bears fence in in them down. Cutler stepped up and matched a arrondissement of expertise unsightly with 4 touchdown passes to remain Chicago to a 31-26 success and the steer in the division.
In these times, Vick played comfortably, but the Chicago keeping was stingy as reiterative and sober-sided managed to prevent into into the basic body, in some 4 years to describe an interception dippy Mike Vick…Of expeditiousness, that 4 year follow has a puppy sized aster-ix close-fisted it.
Okay, so dialect mayhap the Bears are in retaliation for above-board in kasyno. So what's the verdict? Do they watch over break away the Packers and hold original guerdon in the division? It seems the Bears maintain in the offing discovered a divulge up fully undeterred by to Mike Martz's play-calling with their vamoose position, and if Cutler is on easy street to signal on performances like he did on Sunday with a 146.2 passer rating, acuity in their stingy security, this troupe muscle be a sleeper conclude upon!
Chicago Bears hush critics, in discern of this week anyway
Chicago Bears hush critics, in the direction of this week anyway
Chicago Bears quietude critics, in position of this week anyway
Hors ligne
Bonjour
je commence a arriver a saturation
pourquoi ce script pris dans les exemples fonctionne lorsqu'on charge le fichier html directement
et ne fonctionne plus si on l'appelle via une fonction (views.py) de django
exemple
def home(request):
return render_to_response('ex1.html')
tout ce qui commence par $. ne passe plus.... sans parler de getjson...
fichier ex1.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>jQuery demo</title>
</head>
<body>
<a href=" ">Link</a>
<script type="text/javascript" src="jquery-1.2.6.min.js"></script>
<script>
$(document).ready(function(){
$("a").click(function(event){
alert("As you can see, the link no longer took you to jquery.com");
event.preventDefault();
});
});
</script>
</body>
</html>
Hors ligne
Bonjour!
T'as debuggé avec firebug? Tu aurais sûrement trouvé ce qu'il ne va pas
Si tout ce qui est lié à $ ne passe pas c'est sûrement que jQuery n'est pas chargé.
Ça marche quand tu ouvre ton template directement puisqu'il trouve le js de jQuery (fichier externe à ta page) mais via django ça ne marche plus puisque tu dois servir ce fichier et t'assurer que le chemin vers celui ci est correct.
Courage!
Hors ligne
le fichier jquery-1.2.6.min est dans le même repertoire que le fichier
lorsque je clique sur link j'obtiens
[30/jan 2012 09:07:55] "GET /jquery-1.2.6.min.js HTTP/1.1" 404 2000
ca veut dire qu'il a trouvé le fichier ?
je comprend pas le terme 'servir ce fichier'
Hors ligne