Select en Ajax

Bonjour à tous,
je voudrais savoir s'il est possible de faire un sélecteur en Ajax. Je m'explique :

Supposons que j'ai une noisette inclue en Ajax qui liste les articles du site. Je veux laisser le soin au visiteur de modifier le critère de tri.

Avec des liens, pas de soucis :

<a href="[(#SELF|parametre_url{tri,'date'})]" class="ajax">par date</a> ou <a href="[(#SELF|parametre_url{tri,'titre'})]" class="ajax">par titre</a>

Mais est-il possible / facile de faire la même chose avec un <select> :

<form action="#SELF">
[(#SELF|parametre_url{tri, ''}|form_hidden)]
<select name="tri" id="tri" onchange="submit()">
     <option value="date">par date</option>
     <option value="titre">par titre</option>
</select>
</form>

Ca fonctionnera en rechargeant toute la page. Quelle modification faire pour que ca ne recharge que le squelette inclue en ajax ? Si c'est possible bien sur.

Cordialement

Joseph

Le 21/04/2010 13:30, Joseph a écrit :

Bonjour à tous,
je voudrais savoir s'il est possible de faire un sélecteur en Ajax. Je
m'explique :

Supposons que j'ai une noisette inclue en Ajax qui liste les articles du
site. Je veux laisser le soin au visiteur de modifier le critère de tri.

Avec des liens, pas de soucis :

<a href="[(#SELF|parametre_url{tri,'date'})]" class="ajax">par date</a>
ou <a href="[(#SELF|parametre_url{tri,'titre'})]" class="ajax">par
titre</a>

Mais est-il possible / facile de faire la même chose avec un <select> :

<form action="#SELF">
[(#SELF|parametre_url{tri, ''}|form_hidden)]
<select name="tri" id="tri" onchange="submit()">
<option value="date">par date</option>
<option value="titre">par titre</option>
</select>
</form>

Ca fonctionnera en rechargeant toute la page. Quelle modification faire
pour que ca ne recharge que le squelette inclue en ajax ? Si c'est
possible bien sur.

C'est certainement possible, c'est un formulaire en ajax
et c'est documenté sur spip.net
(mais sur ces articles, va voir les commentaires dans la partie privée,
qui apportent des corrections ou compléments à la doc déjà publiée).

JLuc

Le 22/04/2010 13:44, JLuc a écrit :

C'est certainement possible, c'est un formulaire en ajax
et c'est documenté sur spip.net
(mais sur ces articles, va voir les commentaires dans la partie privée,
qui apportent des corrections ou compléments à la doc déjà publiée).

JLuc

Alors, suite des investigations :

<form action="#SELF" class="ajax">
  [(#SELF|parametre_url{tri, ''}|form_hidden)]
  <select name="tri" id="tri" onchange="submit()">
    <option value="date">par date</option>
    <option value="titre">par titre</option>
  </select>
</form>

ne fonctionnera pas.

Si j'ai bien compris, le JS de SPIP ne traite pas un <form> avec seulement la classe 'ajax' s'il n'est pas un enfant direct de <div class="ajax">.

Par contre, on peut utiliser le mécanisme mis en place pour #BOUTON_ACTION avec la class bouton_action_post

<form action="#SELF" class="bouton_action_post ajax">
  [(#SELF|parametre_url{tri, ''}|form_hidden)]
  <select name="tri" id="tri">
    <option value="date">par date</option>
    <option value="titre">par titre</option>
  </select>
  <button type='submit'>OK</button>
</form>

Fonctionnera (ATTENTION à retirer le onchange="submit()" du select car sinon ca chargera l'inclusion mais dans une nouvelle page.

Mes deux sous

joseph